Ошибка с инструментом слияния p4merge в git

Я установил свой путь к классам для p4merge, задав файл .gitconfig, но там я получаю эту ошибку, когда инструмент p4merge предположит, что они будут работать над этими двумя файлами, которые находятся в конфликте. кто-нибудь знает решение?

добавлен в classpath: "C:\Program Files\Perforce\p4merge.exe" добавлен в файл .gitconfig:

[merge]
    tool = p4merge
[mergetool "p4merge"]
    cmd = p4merge.exe \\\"$BASE\\\" \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$MERGED\\\"

СООБЩЕНИЕ ОШИБКИ:

Normal merge conflict for 'protected/views/layouts/main.php':
  {local}: modified file
  {remote}: modified file
Hit return to start merge resolution tool (p4merge):
C:\Program Files (x86)\Git/libexec/git-core/mergetools/p4merge: line 8: p4merge:
 command not found
protected/views/layouts/main.php seems unchanged.
Was the merge successful? [y/n] n
merge of protected/views/layouts/main.php failed

Ответ 1

Это работает для меня:

[merge]
    keepBackup = false;
    tool = p4merge
[mergetool "p4merge"]
    path = C:/Program Files/Perforce/p4merge.exe
    cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[difftool]
    prompt = false
[mergetool]
    prompt = false

Ответ 2

Почему все так сложно ненавидеть писать команды, чтобы я сделал?

  • Установите форму инструмента p4Merge здесь serach для P4Merge и установить exe, тогда вам нужно только

введите описание изображения здесь

  1. Установите его как пользователь Windows

  2. Перейдите в свой адресный указатель и выполните поиск .gitconfig и добавьте

[mergetool "p4merge"]
  path = C:\\Program Files\\Perforce\\p4merge.exe
  cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
[merge]
  tool = p4merge

Как его использовать? Когда вы что-то тянете и имеете конфликты, вы можете просто написать

git mergetool

И инструмент будет открыт.

введите описание изображения здесь

Внизу вы окончательная версия, которую вы можете редактировать там, затем просто сохраняете и фиксируете, и конфликт будет разрешен.

Ответ 3

Вам также может потребоваться перезапустить консоль git, если вы только что установили p4merge, чтобы обновленные переменные среды регистрировались.

Ответ 4

После того, как я установил P4Merge, я выполнил инструкции на этой странице, и он отлично работает для меня.

https://gist.github.com/tony4d/3454372

Ответ 5

Похоже, что он не может найти p4merge, поэтому попробуйте добавить "C:\Program Files\Perforce \" в переменную среды PATH через "Свойства системы".

Ответ 6

Добавьте полный путь P4merge к вашему .gitconfig. Здесь (обратите внимание, что разделители путей перевернуты вокруг, то есть c:/вместо c: \):

[merge]
    tool = p4
[mergetool "p4"]
    cmd = c:/winprogs/p4merge/p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

Ответ 7

Если вы не хотите добавлять p4merge в переменную окружения Path (как упоминал Дэн Листер), вы можете добавить путь к параметрам в конфигурацию git:

[mergetool "p4merge"]
    path = C:/Program Files/Perforce/p4merge.exe

Он работает для меня на git v1.7.11 (WinXP).

Ответ 8

These steps worked for me.

После загрузки и установки инструмента P4Merge из perforce.com

После имени вашего профиля/идентификатора электронной почты.

Замените это содержимое в файле ~/.gitconfig

 enter code here

[merge]
  keepBackup = false
    tool = p4merge
[mergetool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$LOCAL\""  "\"$PWD/$REMOTE\"" "\"$PWD/$MERGED\""   
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    tool = p4merge
[difftool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""

Ответ 9

Используйте это для правильной настройки в качестве инструмента слияния.

  • $ git config --global merge.tool p4mergetool

  • $ git config --global mergetool.p4mergetool.cmd\"/Applications/p4merge.app/Contents/Resources/launchp4merge\$ PWD/\ $ BASE\$ PWD/\ $ REMOTE\$ PWD/\ $ LOCAL\$ PWD/\ $ MERGED"

  • $ git config --global mergetool.p4mergetool.trustExitCode false

  • $ git config --global mergetool.keepBackup false

Ссылка: https://gist.github.com/tony4d/3454372