WinMerge通过git difftool不断提示输入第二个文件

时间:2011-07-11 13:16:59

标签: git winmerge difftool

我使用@ VonC的excellent instructions来配置我的开发系统,以便git difftool <BRANCH1> <BRANCH1>将调用WinMerge。这是我做的:

  1. ~/.gitconfig

    中放置以下内容

    [DIFF]

    tool = winmerge
    

    [difftool“winmerge”]

    cmd = winmerge.sh \"$LOCAL\" \"$REMOTE\"
    

    [difftool]

    prompt = false
    
  2. 使用以下内容创建/usr/bin/winmerge.sh

    echo Launching WinMergeU.exe: $1 $2

    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"

  3. 现在,当我尝试通过git difftool <BRANCH1> <BRANCH1>启动WinMerge时,我收到了正确的参数传递:

    Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c

    但是,由于一些奇怪的原因,它并不是WinMerge并排显示两个文件,而是提示输入第一个文件作为右侧,第二个文件被接受为左侧:

    [WinMerge should be displaying 2 files not one

    为什么会这样?在配置步骤中我错过了什么?

    P.S。当我在命令行winmerge.sh file1.c file2.c上输入时,WinMerge会立即并排显示这两个文件,就像我期望的那样。

    更新:哇,我刚刚注意到WinMerge提示下方的Both paths are invalid消息(并更新了屏幕截图以强调这一点)。看起来这些文件根本不是由difftool生成的,或者路径出错了。

1 个答案:

答案 0 :(得分:5)

我解决了这个问题!

解决方案在于@pydave的answer in the same thread提供的提示。我所要做的就是用"$1" "$2" cygpath -w $1替换cygpath -w $2(在winmerge.sh中)。

它现在很漂亮。正如我所料。