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

Я пытаюсь настроить DiffMerge в качестве моего difftool в 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.

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
Другие вопросы по тегам