Невозможно заставить git diff использовать diff.external для внешнего инструмента diff
Я использую git со стандартными пакетами Ubuntu 12.04:
git - версия git версия 1.7.9.5
Я не могу найти никакого механизма, который работает, чтобы заставить git 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 так долго.
Должен ли я попробовать обновление до более нового git?
Спасибо за любую помощь! Джон
Мои настройки git config ниже:
git config -l
user.name = jmicco user.email=parent.bank.app@gmail.com diff.external = / home / john / bin / git-meld diff.tool.external = / home / john / bin / git-meld core. editor = emacs core.repositoryformatversion = 0 core.filemode = true core.bare = false core.logallrefupdates = true remote.origin.fetch = + refs /heads / : refs / remotes / origin / remote.origin.fetch = refs / notes / : refs / notes / remote.origin.url = ssh: //jmicco@review.gerrithub.io: 29418 / jmicco / allowance-app remote.origin.pushurl = ssh: //jmicco@review.gerrithub.io: 29418 / jmicco / allowance-app remote.origin.push = HEAD: refs / for / master branch.master.remote = origin branch.master.merge = master remote.gerrit.url = ssh: //jmicco@review.gerrithub.io: 29418 / jmicco / allowance-app remote.gerrit.fetch = + refs /глав / : refs / remotes / gerrit / remote.gerrit.fetch = refs / notes / : refs / notes / remote.gerrit.pushurl = ssh: / /jmicco@review.gerrithub.io:29418/jmicco/allowance-app remote.gerrit.push = HEAD: refs / for / master gerrit.createchangeid = true
1 ответ
Пытаться:
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