无法使git diff使用diff.external作为外部diff工具

时间:2014-04-05 16:57:16

标签: git ubuntu diff

我正在使用git和默认的Ubuntu 12.04软件包:

  git --version   git版本1.7.9.5

我找不到任何可以让git diff打开外部diff工具的机制,它似乎完全忽略了我使用的任何设置。我终于尝试使用

强制它使用我的工具
  

git -c diff.external = / home / john / bin / git-meld diff --ext-diff

但这也不起作用(仍在调用diff --cc)

我也尝试过设置GIT_EXTERNAL_DIFF以及尝试git diftool --tool = meld(它也奇怪地调用diff -cc)。我完全不知道为什么我的diff工具设置被git忽略了。我发现diff -cc输出难以理解,因为我一直在使用GUI diff工具。

我应该尝试更新到更新的git吗?

感谢您的帮助! 约翰

我的git配置设置如下:

  

git config -l <​​/ p>      

user.name = jmicco user.email=parent.bank.app@gmail.com   diff.external = /家庭/ JOHN /斌/混帐MELD   diff.tool.external = / home / john / bin / git-meld core.editor = emacs   core.repositoryformatversion = 0 core.filemode = true core.bare = false   core.logallrefupdates =真   remote.origin.fetch = +参/头/ :参/​​遥控器/来源/   remote.origin.fetch =参/笔记/ :参考文献/笔记/   remote.origin.url = SSH://jmicco@review.gerrithub.io:29418 / jmicco /津贴应用内   remote.origin.pushurl = SSH://jmicco@review.gerrithub.io:29418 / jmicco /津贴应用内   remote.origin.push = HEAD:refs / for / master branch.master.remote = origin   branch.master.merge =主   remote.gerrit.url = SSH://jmicco@review.gerrithub.io:29418 / jmicco /津贴应用内   remote.gerrit.fetch = +参/头/ :参/​​遥控器/格里特/   remote.gerrit.fetch =参/笔记/ :参考文献/笔记/   remote.gerrit.pushurl = SSH://jmicco@review.gerrithub.io:29418 / jmicco /津贴应用内   remote.gerrit.push = HEAD:refs / for / master gerrit.createchangeid = true

1 个答案:

答案 0 :(得分:0)

尝试:

GIT_EXTERNAL_DIFF="/bin/echo" git diff

它应该打印如下:

foo.c /tmp/T1NuN5_foo.c 240b63429c3267f8141ee0f33be9d12fc46216d3 100755 foo.c 0000000000000000000000000000000000000000 100755

然后你的git版本一切正常。

diff.external=/home/john/bin/git-meld是无效的设置。 Git希望外部diff程序能够识别特定于git的参数并生成标准的diff输出。梅尔德不会这样做。

我认为你需要git difftool -t meld