git - Cygwin 混帐 : The merge tool kdiff3 is not available

标签 git cygwin kdiff3

我正在尝试让我的 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/

相关文章:

git - 如何撤消 'git fetch'

Gitignore 除了扩展名为 .rst 的文件之外的所有文件?

python - 从 cygwin 交互运行 win32 ipython 二进制文件

c - Netsh 不在特定接口(interface)上设置 ip

git - 如何在 Git 扩展中配置 KDiff3?

java - 在 java 中编写 GIT 预提交 Hook ?

git - 在 Atlassian Stash 中查看分支 TreeView

c++ - 热衷于在 cygwin 上安装 value.h 头文件 (c/c++)

user-interface - 升级到 Ubuntu 18 后 KDiff3 缺少窗口控件