Настройка diffmerge как визуального инструмента Git difftool не работает

Я пытаюсь настроить DiffMerge в качестве моего инструмента сравнения в Git, но безуспешно. Это важный раздел моего файла .gitconfig (другие не показанные настройки предназначены только для пользователя).

[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" \"$LOCAL\" \"$REMOTE\"

Всякий раз, когда я вызываю git difftool из командной строки powershell, конфликты отображаются непосредственно под интерфейсом powershell, а не в diffmerge, как предполагалось. Я знаю, что настройки подбираются git, потому что, когда я проверяю глобальную конфигурацию, я получаю настройки из файла конфигурации:

git config --global --get-all difftool.diffmerge.cmd
"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe" "$LOCAL" "$REMOTE"

Я использую powershell, а не git bash. Это связано с тем, что я установил github для Windows, который предоставил powershell в качестве оболочки для git, поэтому мне не нужно было устанавливать bash (пока). Версия Git — 1.7.11.msysgit.0.


person Nick    schedule 29.08.2012    source источник


Ответы (1)


Я путался с difftool и mergetool. Мне нужно было использовать mergetool для разрешения конфликтов с визуальным интерфейсом и сохранения результатов. difftool показывает только различия. Подробнее см. git-mergetool-vs-difftool.

Я добавил этот раздел в свой .gitconfig и вместо этого вызвал git mergetool из командной строки powershell. Счастливые дни.

[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    cmd = \"C:\\Program Files\\SourceGear\\Common\\DiffMerge\\sgdm.exe\" --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    trustExitCode = true
    keepBackup = false
person Nick    schedule 29.08.2012