Использование p4merge в качестве инструмента git diff
Я использую windows 7
, Я хочу использовать p4merge
как инструмент Git diff / merge. Я следую этой статье и этой, чтобы настроить и настроить p4merge
:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
И эти строки из git config
:
merge.tool=p4merge
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
diff.tool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
mergetool.keeptemporaries=false
mergetool.prompt=false
Сейчас git mergetool
Команда отлично работает. Но когда я использую git difftool
команда в git bash
, Я жду p4merge
но я вижу внутреннюю реализацию diff в git bash
,
Я попробовал Smooth Git + P4merge, но он не работает для меня, и я попытался сделать, как описано в External Merge и Diff Tools, но я не понял этого.
Замечания:
Когда тип конфликта removed file conflict
, git difftool
команда открывается p4merge
,
4 ответа
Не уверен, если поможет, но последние версии Git поддерживают P4Merge (я использую git version 2.17.0.
на винде через MSYS2).
Вы можете сказать, если это так или нет, запустив git difftool --tool-help
, В нем будут перечислены доступные инструменты, которые Git может использовать (потому что они нашли их в вашем %PATH%
) и инструменты, которые он мог бы использовать (если они были установлены).
Если p4merge
находится в этом списке, то вам просто нужно добавить путь, где p4merge.exe
проживает в вашем %PATH%
(для Windows я рекомендую Rapid Environment Editor для этого).
После того, как это сделано, вам просто нужно следующий конфиг, чтобы быть в вашем .gitconfig
[diff]
tool = p4merge
[merge]
tool = p4merge
и ничего больше. Так что удалите другие вещи, такие как difftool.path
и все такое.
Тогда просто используйте git difftool
или же git mergetool
к вашему сердцу довольны.
Примечание: у меня был репозиторий, в котором, даже если бы я выпустить git difftool
или же git mergetool
Команды P4Merge не запускаются. Я не уверен, в чем была проблема в этом репо. Однако я попытался создать пустую копию где-то на моем диске с git init
, добавьте файл, зафиксируйте его, затем измените его, затем я попытался difftool
и это сработало. Так что, если приведенное выше описание не работает для вас, скорее всего, проблема в другом. Надеюсь это поможет.
Лучше поздно, чем никогда:)
mergetool.p4merge.path должен быть mergetool.p4merge.cmd
Измените путь на cmd для линий mergetool и difftool.
Если вы используете Mac, не забудьте добавить
/
перед приложениями, как в:
[mergetool "p4merge"]
path = /Applications/p4merge.app/Contents/MacOS/p4merge
Вот почему P4Merge не открывался для меня, когда я бегал ниже:
git mergetool
У DeviantDev есть довольно хороший ответ на этот вопрос.
Добавление этого в мой .gitconfig сработало для меня...
[diff]
tool = p4merge
[difftool]
prompt = false
[difftool "p4merge"]
path = C:\\Program Files\\Perforce\\p4merge.exe
[merge]
tool = p4merge
[mergetool "p4merge"]
path = C:\\Program Files\\Perforce\\p4merge.exe
[mergetool]
keepBackup = false