cygwin-git下的KDiff3不会调用



为了与互联网上发布的许多解决方案保持一致,我安装了KDiff3,并修改了.gitconfig,如下所示。尽管如此,当我在存储库中运行git diff HEAD^ HEAD进行测试时,我会得到由默认工具执行的diff。我在Windows7-64上运行cygwin git。有人能解释为什么KDiff3没有被调用吗?

[diff]
    tool = kdiff3
[merge]
    tool = kdiff3
[difftool "kdiff3"]
    path = "D:/Program Files (x86)/KDiff3/kdiff3.exe"
    keepBackup = false
    trustExitCode = false
[mergetool "kdiff3"]
    path = "D:/Program Files (x86)/KDiff3/kdiff3.exe"
    keepBackup = false
    trustExitCode = false

实际上,不需要包装器脚本。如果kdiff3.exe不在你的路径中,你需要在cmd中给出完整的路径作为cmd = /cygdrive/c/apps/KDiff3/kdiff3 ...

我的.gitconfit

[diff]
    tool = kdiff3
[merge]
    tool = kdiff3
[difftool "kdiff3"]
    cmd = kdiff3 "$(cygpath -wla $LOCAL)" "$(cygpath -wla $REMOTE)"
    trustExitCode = false
[mergetool "kdiff3"]
    cmd = kdiff3 "$(cygpath -wla $BASE)" "$(cygpath -wla $LOCAL)" "$(cygpath -wla $REMOTE)" -o "$(cygpath -wla $MERGED)"
    keepBackup = false
    trustExitCode = false
[mergetool]
    prompt = false
[difftool]
    prompt = false

使用git difftool调用配置的diff工具,而不是git diff

由于您似乎使用的是cygwin-git,但使用的是本机kdiff3,因此您可能还需要调用包装脚本,而不是直接调用kdiff3来使用cygpath将路径从cygwin形式转换为本机形式。

git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global mergetool.kdiff3.keepbackup=false
git config --global mergetool.kdiff3.trustexitcode=false

请检查配置:git config --global -l

这在cywin 64位上运行良好

相关内容

  • 没有找到相关文章

最新更新