git-diffall и git difftool --dir-diff не работает с Araxis Merge
Когда я бегу git-diffall
( https://github.com/thenigan/git-diffall) или git difftool --dir-diff
(оба ссылаются на SO пост @Tim Henigan), я получаю следующую ошибку:
Моя конфигурация:
- GitHub для Windows 1.2.6.4 f054d9f (который находится поверх msysgit 1.8.4)
- Araxis Merge 2013 Professional Edition 2013.4296
- Шикарный Git PowerShell, который поставляется вместе с GitHub для Windows
То, что очень странно, - то, что эта точно такая же установка работает на моей другой машине.
И то и другое git config --global diff.tool
а также git config --local diff.tool
вернуть "араксис", как и ожидалось.
Фактическая конфигурация локального репо содержит этот раздел:
[diff]
tool = araxis
[difftool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/compare.exe
prompt = false
[merge]
tool = araxis
[mergetool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/compare.exe
На что ссылается документация Араксиса.
Я не совсем уверен, каким образом параметры действительно передаются в Araxis, и поэтому не знаю, как решить эту проблему дальше.
Какие шаги мне нужно выполнить, чтобы исправить мою конфигурацию, чтобы я мог выполнить сравнение каталогов с помощью Araxis Merge?
1 ответ
Отложив это и вернувшись к нему через некоторое время, я обнаружил причину своей проблемы. Хотя мое исследование было точным, оно не раскрыло всей истории. После еще нескольких раскопок я обнаружил причину.
Я сделал разницу между выводом git config --global -l
а также git config --local -l
и понял, что у меня были некоторые противоречивые (и ошибочные) конфигурации для моих difftools. Я не уверен, как они вышли из синхронизации, но то, что они отличались вообще, была мертвой дешевой распродажей.
Моя глобальная конфигурация выглядела так:
[merge]
tool = Araxis
[mergetool "kdiff3"]
path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
guitool = araxis
tool = araxis
[difftool "kdiff3"]
path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[difftool]
prompt = false
[difftool "Araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool "Araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[difftool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
Я заменил его содержимым локальной конфигурации (опубликованной в OP) и удалил конфигурацию инструментов из локальной конфигурации.
После этого моя проблема полностью исчезла.
Я сделал фактическое редактирование, используя git config --global -e
а также git config --local -e
чтобы не было ошибок при редактировании правильных файлов.