我正在尝试让我的 cygwin git 安装与 kdiff3 一起工作。
我在这里遵循了 Noam Lewis 的指示:http://noamlewis.wordpress.com/2011/03/22/how-to-use-kdiff3-as-a-difftool-mergetool-with-cygwin-git/
但它不起作用:(
运行
git mergetool -t kdiff3
给出这个结果:
Normal merge conflict for ...
{local}: modified file
{remote}: modified file
Hit return to start merge resolution tool (kdiff3):
The merge tool kdiff3 is not available as '~/kdiff3.sh'
然而,运行
~/kdiff3.sh
按预期打开 kdiff3。
这是我的 .gitconfig:
[diff]
tool = kdiff3
[merge]
tool = kdiff3
[mergetool "kdiff3"]
path = ~/kdiff3.sh
keepBackup = false
trustExitCode = false
kdiff3.sh
#!/bin/sh
RESULT=""
for arg
do
if [[ "" != "$arg" ]] && [[ -e $arg ]];
then
OUT=`cygpath -wa $arg`
else
OUT=$arg
if [[ $arg == -* ]];
then
OUT=$arg
else
OUT="'$arg'"
fi
fi
RESULT=$RESULT" "$OUT
done
/cygdrive/c/Program\ Files\ \(x86\)/KDiff3/kdiff3.exe $RESULT
最佳答案
wrap shell 脚本不是必需的。我正在使用安装在 Windows 中的 kdiff3,并将其文件夹设置在路径中,并在 cygwin 中设置 git。如果您没有为 kdiff3 设置路径,则需要在 cmd 中提供完整路径,如 cmd =/cygdrive/c/apps/KDiff3/kdiff3 ...
[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 - Cygwin 混帐 : The merge tool kdiff3 is not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484240/