Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use p4merge as the merge/diff tool for Mercurial?

Does anyone know how to setup Mercurial to use p4merge as the merge/diff tool on OS X 10.5?

like image 887
Jay Stramel Avatar asked Sep 04 '08 01:09

Jay Stramel


2 Answers

This will work for merging:

Place this into your ~/.hgrc (or, optionally, your Mercurial.ini on Windows):

[merge-tools] p4.priority = 100 p4.premerge = True  # change this to False if you're don't trust hg's internal merge p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge p4.gui = True p4.args = $base $local $other $output 

Requires Mercurial 1.0 or newer. Clearly you'll need to update the path to that executable to reflect where you'd got p4merge installed.


You can't change what hg diff uses; but you can use the extdiff extension to create new diff commands that use the display you want.

So hg pdiff could run p4 merge, etc.

like image 60
Ry4an Brase Avatar answered Oct 06 '22 21:10

Ry4an Brase


I found Ry4an's answer to be a good solution, except for a minor problem, which left p4merge (under mac os) mixing up the command inputs. Do everything described in his answer and add the following line in the [merge-tools] section:

p4.args=$base $local $other $output 

This line tells mercurial in which order p4merge takes its arguments.

like image 31
Ivan Avatar answered Oct 06 '22 21:10

Ivan