Подтвердить что ты не робот

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 как правую сторону, а второй файл принят как левая сторона:

[WinMerge should be displaying 2 files not one

Почему это происходит? Что я пропустил на этапах настройки?

P.S. Когда я печатаю в командной строке winmerge.sh file1.c file2.c, WinMerge сразу отображает два файла бок о бок, как и ожидалось.

UPDATE: О, я просто заметил сообщение Both paths are invalid внизу подсказки WinMerge (и обновил скриншот, чтобы подчеркнуть это). Похоже, что эти файлы просто не были созданы diffftool или что-то не так с этим путем.

4b9b3361

Ответ 1

Я решил проблему!

Решение лежит в подсказке, предоставленной @pydave ответом в том же потоке. Все, что мне нужно было сделать, это заменить "$1" "$2" (в winmerge.sh) на cygpath -w $1 cygpath -w $2.

Теперь это прекрасно работает. Как и следовало ожидать.