WinMerge через git diffftool продолжает запрашивать второй файл
Я использовал @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 или что-то не так с этим путем.
Ответы
Ответ 1
Я решил проблему!
Решение лежит в подсказке, предоставленной @pydave ответом в том же потоке. Все, что мне нужно было сделать, это заменить "$1" "$2"
(в winmerge.sh) на cygpath -w $1
cygpath -w $2
.
Теперь это прекрасно работает. Как и следовало ожидать.