你需要看看KDiff3 文档 http://kdiff3.sourceforge.net/doc/index.html,特别是关于合并和输出窗口 http://kdiff3.sourceforge.net/doc/merging.html。要解决冲突,您需要决定是否live
or january
是该线路的正确选择。该决定由您做出,没有任何工具可以知道您的意思是其中之一。
In KDiff3, you press Ctrl + 2 to select live
, press Ctrl + 3 to select january
or right-click in the margin of the bottom window and select the line you want. You can also click in the bottom window and edit the line manually.
Mercurial 让你配置您的合并工具 https://www.mercurial-scm.org/wiki/MergeToolConfiguration任何你喜欢的方式。 TortoiseHg 附带一个默认配置,将 KDiff3 置于列表顶部,但如果您愿意,也可以使用其他工具。合并工具实际上只是一个接受四个文件名的程序:要比较的三个文件(基本文件、父文件 1、父文件 2)和一个输出文件名。
要解决命令行上的冲突,您需要启动合适的命令行三向合并工具。例如你可以与 vim 合并 https://www.mercurial-scm.org/wiki/MergingWithVim如果你喜欢。 (恐怕我对 vimdiff 一无所知,我自己使用 KDiff3。)
如果您不喜欢看到弹出合并工具,那么您可以设置
[ui]
merge = internal:merge
使 Mercurial 仅使用内部三向合并。当编辑不冲突时,它会很好地合并文件。当存在冲突时,文件被标记为“未解决”,并且冲突标记被存储在文件中。
然后,您需要手动编辑该文件以获得您想要的版本。您还可以重新合并并选择本地(您的)版本:
$ hg resolve --tool internal:local your-file
或其他版本:
$ hg resolve --tool internal:other your-file
您完全重新启动合并hg resolve your-file
。该文件需要先标记为“已解决”,然后才能提交。这是用完成的hg resolve --mark your-file
. See hg resolve --list
获取当前合并的状态。