FileMerge on Mac OS X

To configure merge to use FileMerge on Mac OS X, create a file called "opendiff-merge" with the following contents:

# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff $1 $3 -merge $1 -ancestor $2 | cat

Save this file into your shell's default path ($PATH). Because this is a shell script, you need to be sure it has execution permissions:

chmod +x opendiff-merge

Next look in your home directory for the following file ".hgrc". If it does not exist, create it. If it does exist, add the following to it:

[ui]
merge = opendiff-merge

The command "hg merge" will now use FileMerge to resolve its conflicts.

Better way in Mercurial 1.0

Use instead the same opendiff-w script as described in ExtdiffExtension:

# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff "$@" | cat

Add the following to your .hgrc file:

[merge-tools]
filemerge.executable = opendiff-w
filemerge.args = $local $other -ancestor $base -merge $output

See also