Настройка diff-инструмента для Git в Windows - PullRequest
5 голосов
/ 30 октября 2011

Поскольку git diff в powershell в основном приводит к нечитаемому количеству пробелов или странных символов, я установил Perforce P4Merge, чтобы обрабатывать слияния и различия.

Однако я не могу заставить git diff открыть приложение p4merge для просмотра различий. Пока мой .gitconfig выглядит так:

[diff]
    tool = p4diff

[difftool "p4diff"]
    external = 'C:/PROGRA~1/Perforce/p4merge.exe "$LOCAL" "$REMOTE"'
    prompt = false

[merge]
    keepBackup = false
    tool = p4merge

[mergetool "p4merge"]
    cmd = "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
    path = 'C:/PROGRA~1/Perforce/p4merge.exe'
    prompt = false
    keepBackup = false
    keepTemporaries = false
    trustExitCode = false

Пути правильные. Но, увы, git все еще пытается представить diff в Powershell при использовании git diff.

Так в чем же подвох?

Ответы [ 4 ]

10 голосов
/ 08 марта 2012

В командной строке введите: git config --global diff.tool p4diff

Это сработало для меня, используя файл конфигурации, настроенный как вы описали:

[diff]  
    tool = p4merge  
[difftool "p4diff"]  
    external = '"C:/Program Files/Perforce/p4merge.exe" "$LOCAL" "$REMOTE"'

Запуск git difftool Открытие p4merge, как и ожидалось.

Ref: Как просмотреть вывод 'git diff' с помощью программы визуального сравнения?

9 голосов
/ 05 декабря 2013

Я в Windows 7 использую MSysGit v1.8.4.

Для меня единственным решением было добавить p4merge в системную переменную пути (перезагрузка понадобилась позже).Сделав это, я сделал следующее:

git config --global diff.tool p4merge
git config --global difftool.p4merge.cmd 'p4merge.exe $LOCAL $REMOTE'
git config --global difftool.prompt false

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe $BASE $LOCAL $REMOTE $MERGED'
git config --global mergetool.prompt false
git config --global mergetool.trustExitCode false
git config --global mergetool.keepBackup false

Я рекомендую придерживаться "git config" вместо того, чтобы редактировать conf вручную, потому что дефисы и т. Д. Иногда отличаются в этих методах.

2 голосов
/ 06 ноября 2014

Дэн Лимерик (Dan Limerick) имеет превосходное краткое руководство по настройке p4merge Perforce для Windows:

http://danlimerick.wordpress.com/2011/06/19/git-for-window-tip-use-p4merge-as-mergetool/

Протестировано с Git 1.9.4 и p4merge 2014.1 на Windows 7.

0 голосов
/ 06 июля 2017
  1. git config --global diff.tool p4merge
  2. git config --global difftool.p4merge.cmd "p4merge \" $ LOCAL \ "\" $ REMOTE \ ""
  3. добавьте путь p4merge.exe («C: \ Program Files \ Perforce \ p4merge.exe») к пути среды

ps:

  • на шаге 2, выдобавим \ "$ LOCAL \" \ "$ REMOTE \" (локальный diff удаленный), или p4merge не будет знать, что нужно diff
...