Git Directory Diff не работает в моем подмодуле

Я использую Git 1.8.4 и Linux (Kubuntu 13.10).

У меня есть репозиторий Git с подмодулями. Если я запрашиваю каталог diff в основном модуле Git, он работает нормально. Если я делаю то же самое в одном из подмодулей, я получаю ошибку:

~/Projects/MAINMODULE/platform/SUBMODULE [master]$ git difftool -tool=meld --dir-diff --cached
  fatal: Could not switch to '../../../../platform/': No such file or directory
  diff --raw --no-abbrev -z --cached: command returned error: 128
~/Projects/MAINMODULE/platform/SUBMODULE [master]$ cd ..
~/Projects/MAINMODULE/platform [master]$ cd ..
~/Projects/MAINMODULE [master]$ git difftool -tool=meld --dir-diff --cached
  // NO PROBLEM, works.
~/Projects/MAINMODULE [master]$ git version
  git version 1.8.4

Есть ли у вас какие-либо идеи? Может быть, это ошибка Git?

ОБНОВЛЕНИЕ: 1.8.5.3 выдает тот же результат


person Gábor Lipták    schedule 07.02.2014    source источник
comment
1.8.5.3 выдает тот же результат: Тогда это похоже на ошибку. Последнее исправление для этой функции difftool — github.com/git/git/commit/. (гит 1.8.3.2)   -  person VonC    schedule 07.02.2014
comment
Я отправил отчет об ошибке с этой ссылкой SO на [email protected], упомянутый в вашем ответе на stackoverflow.com/a/ 10733251/337621 . Спасибо.   -  person Gábor Lipták    schedule 07.02.2014
comment
В порядке. Буду ждать их ответа.   -  person VonC    schedule 07.02.2014
comment
git.661346.n2.nabble. ком/   -  person Gábor Lipták    schedule 10.02.2014


Ответы (1)


Этот обходной путь работает для меня:

GIT_WORK_TREE="$(git rev-parse --show-toplevel)" GIT_DIR="$(git rev-parse --git-dir)" git difftool --tool=meld --dir-diff

Вы, конечно, можете указать --cached в соответствии с вашим примером.

Это довольно много для ввода, поэтому вы можете добавить следующий псевдоним к вашему ~/.gitconfig:

[alias]
    submeld = !git --work-tree "$(git rev-parse --show-toplevel)" --git-dir "$(git rev-parse --git-dir)" difftool --tool=meld --dir-diff
person cdyson37    schedule 23.07.2014
comment
Я попробую это, как только у меня будет время. Спасибо за ответ. - person Gábor Lipták; 23.07.2014