# HG changeset patch # User mpm@selenic.com # Date 1117852973 28800 # Node ID a2edb4481f19fcb472b4f3ebda9a7d4116c6ae9f # Parent afe895fcc0d00db4b92ed07364a212486698288b hgmerge: use diff3 if available -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hgmerge: use diff3 if available diff3 may be more readily available than merge manifest hash: 67a314ac42aa78410d64a6c3d36c2d575a588533 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCoRUtywK+sNU5EO8RAmFPAJ0aN8VNvN9zpE/zov6wT3M98vGfDwCfXEOk xZlQHYIGrCLOFQiCQxIfr7I= =Asv9 -----END PGP SIGNATURE----- diff --git a/hgmerge b/hgmerge --- a/hgmerge +++ b/hgmerge @@ -21,6 +21,12 @@ if which merge > /dev/null ; then exit 0 fi cp $LOCAL.orig $LOCAL +elif which diff3 > /dev/null ; then + if diff3 -m $LOCAL.orig $BASE $OTHER > $LOCAL ; then + # success + exit 0 + fi + cp $LOCAL.orig $LOCAL fi # try using kdiff3, which is fairly nice @@ -45,6 +51,13 @@ fi if which merge > /dev/null ; then echo "conflicts detected in $LOCAL" merge $LOCAL $BASE $OTHER 2>/dev/null || $EDITOR $LOCAL + exit 0 +fi + +if which diff3 > /dev/null ; then + echo "conflicts detected in $LOCAL" + diff3 -m $LOCAL.orig $BASE $OTHER > $LOCAL || $EDITOR $LOCAL + exit 0 fi # attempt to manually merge with diff and patch @@ -64,5 +77,3 @@ fi echo "hgmerge: unable to find merge, tkdiff, kdiff3, or diff+patch!" exit 1 - -