当Mercurial在cygwin下运行时,弄清楚如何生成WinMerge来解决合并冲突有点棘手.我怎样才能做到这一点?
诀窍是cygwin路径与Windows路径不同,因此您需要一个小脚本将cygwin路径转换为Windows路径,然后将它们作为参数传递给WinMerge.
这是怎么做的:
(1)创建一个shell脚本/usr/bin/winmerge
如下:
#!/bin/sh "/cygdrive/c/Program Files/WinMerge/WinMergeU.EXE" /e /ub /dl other /dr local `cygpath -aw $1` `cygpath -aw $2` `cygpath -aw $3`
注意:cygpath
转换路径名称.如果WinMerge不在默认位置,请在此处更改路径.
(2)使该文件可执行
chmod +x /usr/bin/winmerge
(3)将以下内容添加到您的~/.hgrc
文件中:
[ui] merge = winmerge [merge-tools] winmergeu.executable=/usr/bin/winmerge winmergeu.args=$other $local $output winmergeu.fixeol=True winmergeu.checkchanged=True winmergeu.gui=False
注意!您可能已经有一个带有您姓名的[ui]部分.请记住将我的更改与您的更改合并,不要只添加新的[ui]部分.例如,我的.hgrc看起来像这样:
[ui] username = Joel Spolskymerge = winmergeu [extensions] fetch = [merge-tools] winmergeu.executable=/usr/bin/winmerge winmergeu.args=$other $local $output winmergeu.fixeol=True winmergeu.checkchanged=True winmergeu.gui=False