【问题标题】:How do I configure TortoiseSVN's external merge behavior?如何配置 TortoiseSVN 的外部合并行为?
【发布时间】:2012-06-22 00:09:53
【问题描述】:

在与 TortoiseSVN 合并后,我在运行冲突解决时遇到了一些问题。

我试图让它将数据发送到 BeyondCompare 并使用它的 3 路合并功能。不幸的是,它发送文件的顺序与 BeyondCompare 所期望的不同,因此它的合并完全错误。

如果我在资源管理器中右键单击并说 TortoiseSVN->设置,然后在外部程序->合并工具下我可以指定 BeyondCompare 的路径,但那里没有关于参数的任何内容。如何重新排序它发送到外部合并工具的参数,以便我可以在 BeyondCompare 中正确显示?

【问题讨论】:

    标签: svn tortoisesvn beyondcompare


    【解决方案1】:

    您可以在TortoiseSVN->Settings->Merge Tools 对话框中控制 TortoiseSVN 发送到外部合并应用程序(在本例中为 BComp.exe)的参数。

    BC support documentation 中有一个使用 BeyondCompare 进行双向和三向合并的示例:

    3-way Merge (v3 Pro)
    
    1.    Select Settings from Explorer's TortoisSVN submenu.
    2.    Switch to the Merge Tool tab.
    3.    Change the radio buttons from TortoiseMerge to External.
    4.    In the path edits, enter:
    5.    "C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname 
    
    2-way Merge (v3 Std, v2)
    
    Use the same steps as above, but use the command line:
    
    `"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs /savetarget=%merged`
    

    这在Tortoise SVN docs4.30.5.2 部分中有介绍(没有指向子主题的链接 - 在页面上搜索Merge Tool):

    参数替换的使用方式与 Diff 程序相同。

    %base - 没有您或其他人更改的原始文件

    %bname - 基本文件的窗口标题

    %mine - 您自己的文件,包含您的更改

    %yname - 文件的窗口标题

    %theirs - 存储库中的文件

    %tname - 存储库中文件的窗口标题

    %merged - 冲突文件,合并操作的结果

    %mname - 合并文件的窗口标题

    例如,使用 Perforce 合并:

    C:\Path-To\P4Merge.exe %base %theirs %mine %merged

    或使用 KDiff3:

    C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged --L1 %bname --L2 %yname --L3 %tname

    或使用 Araxis:

    C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged /a2

    或使用 WinMerge(2.8 或更高版本): C:\Path-To\WinMerge.exe %merged

    【讨论】:

    • 感谢您的精彩提示。我在没有参数的情况下使用了 BComp,并且对 BComp 总是错误的合并建议感到非常恼火。也适用于 Beyond Compare 4。
    【解决方案2】:

    上面的答案对我们不起作用,因为参数的解释是有帮助但错误的(至少对我们来说)

    对我们来说正确的顺序是: [Path]\BCompare.exe %base %mine %theirs %merged

    这里的诀窍是交换 %theirs 和 %merged,因为 Beyond Compare 将它们放错了位置。作为提示:本地文件必须始终显示在右手边。 Left 必须是 revBase 和 center revHEAD。

    【讨论】:

    • 奇怪,我有它%mine %theirs %base %merged,所以本地在左边,中间在中间,在右边,它在合并方面做得很好。
    【解决方案3】:

    仅适用于 DiffViewer:

    Beyond Compare 3 和 TortioseSVN (TortoiseSVN 1.9.4)

    设置->DiffViewer。将单选按钮移到外部并粘贴到 ~

    C:\Program Files (x86)\Beyond Compare 3\BCompare.exe %base %mine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多