【问题标题】:How can KDiff3 be used properly with TortoiseSVN to resolve conflicts?如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?
【发布时间】:2010-09-16 14:05:23
【问题描述】:

我已将 TortoiseSVN 设置为使用 KDiff3 作为冲突解决工具(我发现它比内置的 TortoiseMerge 显示了更多对合并有用的信息)。

当我使用 Tortoise 的“编辑冲突”命令打开一个文件时,它会显示三个文件,我必须手动选择“合并->合并当前文件”。问题是 KDiff3 将结果保存到 source_file.working 而不是 source_file。因此,如果不执行另存为,则存在冲突的真实文件不会被修改。有没有办法每次都执行此手册另存为?

我知道这不是一个严格的编程问题,而是一个对程序员来说足够普遍的辅助过程,它在这里应该很有用。我在别处找不到这个问题的答案。

【问题讨论】:

    标签: svn tortoisesvn diff conflict


    【解决方案1】:

    我的有点长:

    "C:\Program Files\KDiff3\kdiff3.exe" %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs
    

    【讨论】:

    • 原来如此!而且由于我无权获得此问题的答案,而且您的内容更全面,因此请继续。
    • 我发现(至少对我而言)标签可以设置为(偶尔)更有帮助的东西:---L1 "Base: %base" --L2 "Mine: %我的”--L3“他们的:%他们的”
    • 这行得通。有没有办法让它在您关闭 KDiff3 编辑器时将冲突标记为已解决?也许有一个用例可以让您在手动选择“标记为已解决”之前做一些事情,但最好不要最后一步。
    • @EdRandall Yours 在%mine%theirs 包含空格时失败,它会尝试打开三向合并而不是差异。可能是因为%mine%theirs 的内容包含在" 引号中。
    【解决方案2】:

    如果有其他人和我一样,让我指出他是在 TortoiseSVN->Settings->Diff Viewer 中完成的。我在已经安装 Tortoise 的 Windows 中安装了 KDiff3,它是自动配置的。我花了一些时间才弄清楚需要在哪里完成。

    【讨论】:

      【解决方案3】:

      原来我只需要一个更具体的命令行。我将它设置为kdiff3.exe 的路径,并希望从 TortoiseSVN 传递的默认参数就足够了。不是这样。这是需要的(关键是-o 参数):

      C:\Program Files\KDiff3\kdiff3.exe %base %theirs %mine -o %merged
      

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,但无需任何命令行即可解决: 当我点击“编辑冲突”时,kdiff3 打开了。 解决冲突后,我只需单击“保存”并关闭 kdiff3 窗口。 关闭窗口后,我切换回 SVN“解决冲突”窗口并单击解决。 然后就出现了下一个冲突....

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-25
          • 1970-01-01
          • 1970-01-01
          • 2014-10-19
          • 2010-09-11
          • 2015-09-23
          相关资源
          最近更新 更多