问题
I have setup my classpath for p4merge an set the file .gitconfig, but there i get this error when the p4merge tool suppose to opem those two files that are in conflict. anybody knows the solution?
added to classpath: "C:\Program Files\Perforce\p4merge.exe" added to .gitconfig file:
[merge]
tool = p4merge
[mergetool "p4merge"]
cmd = p4merge.exe \\\"$BASE\\\" \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$MERGED\\\"
ERROR MESSAGE:
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:
It works for me:
[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:
Why is everything so hard I hate to write commands so what I did?
- Install p4Merge tool form here serach for P4Merge and install the exe then you need only
Install it as Windows user
Go into your user direcotry and search for .gitconfig edit it and add
[mergetool "p4merge"] path = C:\\Program Files\\Perforce\\p4merge.exe cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" [merge] tool = p4merge
How to use it? When you pull something and have conflicts you can just write
git mergetool
And the tool will be open.
At the bottom is you final version you can edit there then just save and commit and the conflict will be resolved.
回答3:
You may also need to restart your git console if you've just installed p4merge, for the updated environment variables to register.
回答4:
After I installaed P4Merge, I followed the instructions on this page and it works perfectly for me.
https://gist.github.com/tony4d/3454372
回答5:
It looks like it can't find p4merge so try adding "C:\Program Files\Perforce\" to your PATH environment variable via System Properties.
回答6:
Add the full P4merge path to your .gitconfig. Here's mine (note that the path separators are flipped around, i.e. c:/ instead of c:\):
[merge]
tool = p4
[mergetool "p4"]
cmd = c:/winprogs/p4merge/p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
回答7:
If you don`t want to add p4merge in environmental variable Path (as Dan Lister mentioned) you could add parameter path in your git config:
[mergetool "p4merge"]
path = C:/Program Files/Perforce/p4merge.exe
It works for me on git v1.7.11 (WinXP).
回答8:
These steps worked for me.
After downloading and installing P4Merge tool from perforce.com
After your profile name/email id.
Replace this content in your ~/.gitconfig file
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:
Use this for the proper set up as merge tool.
$ 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
Reference: https://gist.github.com/tony4d/3454372
来源:https://stackoverflow.com/questions/10742129/error-with-p4merge-merging-tool-in-git