如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?
Posted
技术标签:
【中文标题】如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?【英文标题】:How can KDiff3 be used properly with TortoiseSVN to resolve conflicts? 【发布时间】:2010-09-16 14:05:23 【问题描述】:我已将 TortoiseSVN 设置为使用 KDiff3 作为冲突解决工具(我发现它比内置的 TortoiseMerge 显示了更多对合并有用的信息)。
当我使用 Tortoise 的“编辑冲突”命令打开一个文件时,它会显示三个文件,我必须手动选择“合并->合并当前文件”。问题是 KDiff3 将结果保存到 source_file.working
而不是 source_file
。因此,如果不执行另存为,则存在冲突的真实文件不会被修改。有没有办法每次都执行此手册另存为?
我知道这不是一个严格的编程问题,而是一个对程序员来说足够普遍的辅助过程,它在这里应该很有用。我在别处找不到这个问题的答案。
【问题讨论】:
【参考方案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“解决冲突”窗口并单击解决。 然后就出现了下一个冲突....
【讨论】:
以上是关于如何正确使用 KDiff3 与 TortoiseSVN 来解决冲突?的主要内容,如果未能解决你的问题,请参考以下文章