Mercurial Under Cygwin

The following instructions are for the version of Mercurial included with Cygwin. The following commands are run from a cygwin bash shell window.

This version of Mercurial invokes external diff/merge tools using cygwin-style pathnames, such as /tmp/foo (which is relative to the root of the cygwin directory). These pathnames are not understood by DiffMerge. A shell script wrapper sgdm_cygwin.sh has been provided (in the same directory as the sgdm.exe executable) to translate these pathnames and launch DiffMerge.

[extensions]
hgext.extdiff =

[extdiff]
cmd.diffmerge = C:/Program Files/SourceGear/Common/DiffMerge/sgdm_cygwin.sh

[merge-tools]
diffmerge.executable = C:/Program Files/SourceGear/Common/DiffMerge/sgdm_cygwin.sh
diffmerge.args = -merge -result=$output  -p1=$local -p2=$base -p3=$other
diffmerge.binary = False
diffmerge.symlinks = False
diffmerge.gui = True
diffmerge.premerge = True
	    

Note that each of the input pathnames is associated with a /pX= option instead of being an unbound parameter.