解决方法
诀窍是cygwin路径与Windows路径不一样,因此您需要一个脚本,将cygwin路径转换为Windows路径,然后将其作为参数传递给WinMerge.
以下是如何做到这一点:
(1)在/usr/bin/winmerge中创建一个shell脚本,如下所示:
#!/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
[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 Spolsky <spolsky@example.com> merge = winmergeu [extensions] fetch = [merge-tools] winmergeu.executable=/usr/bin/winmerge winmergeu.args=$other $local $output winmergeu.fixeol=True winmergeu.checkchanged=True winmergeu.gui=False