Git Difftool Meld在Babun中不起作用

JCo*_*ton 6 git cygwin meld git-difftool babun

我目前正在使用以下命令设置Meld difftool在Babun中工作:

git config --global diff.tool meld
git config --global difftool.prompt false
git config --global difftool.meld.path "/cygdrive/c/Program\ Files\ \(x86\)/Meld/Meld.exe"
git config --global difftool.meld.cmd '/cygdrive/c/Program\ Files\ \(x86\)/Meld/Meld.exe $LOCAL $REMOTE'
Run Code Online (Sandbox Code Playgroud)

这是有效的,当我运行时,Meld会打开两个文件

git difftool HEAD HEAD^
Run Code Online (Sandbox Code Playgroud)

但是,第二个文件(来自远程)没有打开,我得到了

There was a problem opening the file "\tmp\xxx_FILENAME.EXTENSION"
Run Code Online (Sandbox Code Playgroud)

但是,当我从git bash运行difftool时,它可以工作.我的设置有问题吗?

JCo*_*ton 7

问题是从Cygwin访问临时文件.因为Cygwin有自己的驱动器,我需要使用它cygpath来格式化文件路径.完整设置如下:

git config --global diff.tool meld
git config --global difftool.prompt false
git config --global difftool.meld.path "c:\Program Files (x86)\Meld\Meld.exe"
git config --global difftool.meld.cmd 'c:/Program\ Files\ \(x86\)/Meld/Meld.exe "$(cygpath -w "$LOCAL")" "$(cygpath -w "$REMOTE")"'
Run Code Online (Sandbox Code Playgroud)