Git Difftool Meld 在 Babun 中不起作用

标签 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'

这行得通,当我运行时,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")"'

关于Git Difftool Meld 在 Babun 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001534/

相关文章:

c++ - 无法打开已知的共享对象文件

Git 将一个分支 merge 到另一个分支是双向 merge 吗?

git - 如何修复 Gitk 错误 : Expected integer but got ""

git - Cygwin 的 Git 命令正在从命令中删除大括号。我该如何防止这种情况?

regex - BASH glob/regex 范围的奇怪行为

c++ - C++ 中的 is_open() 函数始终返回 0 值,而 getLine(myFile, line) 不返回任何内容

python - 使用 Python3 将 meld 设置为 git mergetool

python - Meld 需要 pygtk 2.8.0 或更高版本

git - "-X theirs"选项似乎不适用于某些 Git 冲突

git - 为什么一个分支的更改在另一个分支中可见?