Ошибка с инструментом слияния 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, тогда вам нужно только
![введите описание изображения здесь]()
-
Установите его как пользователь Windows
-
Перейдите в свой адресный указатель и выполните поиск .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