KDiff3 bajo cygwin git no invocará

De acuerdo con una serie de soluciones publicadas en Internet, he instalado KDiff3 y modificado .gitconfig como se .gitconfig continuación para utilizarlo. Sin embargo, cuando ejecuto git diff HEAD^ HEAD dentro de un repository para probarlo, obtengo un diff realizado por la herramienta pnetworkingeterminada. Estoy ejecutando cygwin git en Windows7-64. ¿Alguien puede explicar por qué no se invoca 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 

Utilice git difftool para invocar la herramienta diff configurada, no git diff .

Como pareces estar usando cygwin git, pero un kdiff3 nativo, probablemente también necesites invocar un script de envoltura, en lugar de kdiff3 directamente, para usar las cygpath conversión de cygpath de la forma cygwin a la forma nativa.

En realidad, el script de envoltura no es necesario. Si kdiff3.exe no está en su ruta, debe indicar la ruta completa en cmd como cmd = /cygdrive/c/apps/KDiff3/kdiff3 ...

Mi .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 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 

por favor revisa config: git config --global -l

esto funciona bien en cywin 64bit