Git Difftool Meld 在 Babun 中不起作用
Git Difftool Meld Doesn't Work in 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'
这行得通,当我 运行
时,Meld 会打开这两个文件
git difftool HEAD HEAD^
但是,第二个文件(来自远程)没有打开,我得到
There was a problem opening the file "\tmp\xxx_FILENAME.EXTENSION"
然而,当我 运行 来自 git bash 的 difftool 时它起作用了。我的设置有问题吗?
问题是从 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")"'
我目前正在使用以下命令设置 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'
这行得通,当我 运行
时,Meld 会打开这两个文件git difftool HEAD HEAD^
但是,第二个文件(来自远程)没有打开,我得到
There was a problem opening the file "\tmp\xxx_FILENAME.EXTENSION"
然而,当我 运行 来自 git bash 的 difftool 时它起作用了。我的设置有问题吗?
问题是从 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")"'