Я использовал @VonC отличные инструкции, чтобы настроить мою систему разработки так, чтобы git difftool <BRANCH1> <BRANCH1> вызывал WinMerge. Вот что я сделал:
-
В
~/.gitconfigпомещено следующее:[Diff]
tool = winmerge[difftool "winmerge" ]
cmd = winmerge.sh \"$LOCAL\" \"$REMOTE\"[difftool]
prompt = false -
Создал
/usr/bin/winmerge.shсо следующим содержимым:echo Launching WinMergeU.exe: $1 $2"C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub "$1" "$2"
Теперь, когда я пытаюсь запустить WinMerge с помощью git difftool <BRANCH1> <BRANCH1>, я получаю то, что кажется правильным при передаче параметров:
Launching WinMergeU.exe: /tmp/21qMVb_file1.c /tmp/1ACqik_file1.c
Но, по какой-то странной причине, вместо того, чтобы WinMerge отображал эти два файла бок о бок, он предлагает ввести файл first как правую сторону, а второй файл принят как левая сторона:

Почему это происходит? Что я пропустил на этапах настройки?
P.S. Когда я печатаю в командной строке winmerge.sh file1.c file2.c, WinMerge сразу отображает два файла бок о бок, как и ожидалось.
UPDATE: О, я просто заметил сообщение Both paths are invalid внизу подсказки WinMerge (и обновил скриншот, чтобы подчеркнуть это). Похоже, что эти файлы просто не были созданы diffftool или что-то не так с этим путем.