如何使diffmerge与Mercurial进行三向合并?

时间:2010-09-20 02:55:51

标签: mercurial diffmerge

我目前正在使用命令hg diffmerge -r 32 -r 30 myfile,但这只显示两个窗口,而不是三个窗口。如何让它进行三向合并?

.hgrc

[ui]
merge=diffmerge

[extensions]
collapse=~/.hgext/collapse.py
hgext.purge=
hgext.extdiff=
hgext.graphlog=

[extdiff]
cmd.diffmerge=/usr/bin/diffmerge

[merge-tools]
diffmerge.executable=/usr/bin/diffmerge
diffmerge.args= --result=$output -t1="Local Version" -t2=$output -t3="Other Version" --caption=$output $local $base $other
diffmerge.binary=False
diffmerge.symlinks=False
diffmerge.gui=True
diffmerge.premerge=True 

1 个答案:

答案 0 :(得分:3)

我想你的意思是你使用SourceGear DiffMerge作为外部合并工具。你的.hgrc是什么?它是基于sample from hg website吗?

我的猜测是你的diffmerge.args有问题。您可以尝试使用这些参数手动运行diffmerge以确保它有效。


现在你的.hgrc已经很清楚了。您的命令hg diffmerge -r 32 -r 30 myfile不是合并命令,而是要求hg使用diffmerge作为外部差异工具(在[extdiff]部分中指定)来比较版本32和30之间的myfile。没有涉及第三版。

对于合并,您运行hg merge [-r<the other head>],并且由于您的.hgrc告诉hg使用diffmerge作为合并工具(在[ui]部分中指定),hg将使用diffmerge进行3向合并。我验证它在我的Windows设置中使用相同的hgrc。