Skip to content
Snippets Groups Projects
Commit 737c66b68290 authored by mpm's avatar mpm
Browse files

Replace tkmerge with hgmerge

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Replace tkmerge with hgmerge

hgmerge attempts to find and use merge, kdiff3, tkmerge, and diff+patch.
hg will use hgmerge unless overridden with HGMERGE

manifest hash: 9137a620df4b235e66343b0fd0dba87fe631546e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQFCoRGrywK+sNU5EO8RAi2VAJ9bh97ChGJymP/p8rvCuyNAMnk1bQCgrIGP
vYI6qlyWKQZ01ObUTAIg92o=
=+mRH
-----END PGP SIGNATURE-----
parent 75840796e8e2
No related branches found
No related tags found
No related merge requests found
......@@ -19,10 +19,6 @@
$ export PYTHONPATH=${HOME}/lib/python # add this to your .bashrc
$ export PATH=${HOME}/bin:$PATH #
You'll also need to set up a tool to handle three-way merges:
$ export HGMERGE=tkmerge # customize this
And finally:
$ hg # test installation, show help
......
hgmerge 0 → 100644
#!/bin/bash
#
# hgmerge - default merge helper for Mercurial
#
# This tries to find a way to do three-way merge on the current system.
# The result ought to end up in $1.
set -e # bail out quickly on failure
LOCAL=$1
BASE=$2
OTHER=$3
# Back up our file
cp $LOCAL $LOCAL.orig
# Attempt to do a non-interactive merge
if which merge > /dev/null ; then
if merge $LOCAL $BASE $OTHER 2> /dev/null; then
# success!
exit 0
fi
cp $LOCAL.orig $LOCAL
fi
# try using kdiff3, which is fairly nice
if which kdiff3 > /dev/null ; then
if kdiff3 --auto $BASE $LOCAL $OTHER -o $LOCAL ; then
exit 0
else
exit 1
fi
fi
# try using tkdiff, which is a bit less sophisticated
if which tkdiff > /dev/null ; then
if tkdiff $LOCAL $OTHER -a $BASE -o $LOCAL ; then
exit 0
else
exit 1
fi
fi
# Attempt to do a merge with $EDITOR
if which merge > /dev/null ; then
echo "conflicts detected in $LOCAL"
merge $LOCAL $BASE $OTHER 2>/dev/null || $EDITOR $LOCAL
fi
# attempt to manually merge with diff and patch
if which diff > /dev/null ; then
if which patch > /dev/null ; then
T=`mktemp`
diff -u $BASE $OTHER > $T
if patch $LOCAL < $T ; then
exit 0
else
$EDITOR $LOCAL $LOCAL.rej
fi
rm $T
exit 1
fi
fi
echo "hgmerge: unable to find merge, tkdiff, kdiff3, or diff+patch!"
exit 1
......@@ -981,8 +981,8 @@
self.ui.debug("file %s: other %s ancestor %s\n" %
(fn, short(other), short(base)))
cmd = os.environ["HGMERGE"]
r = os.system("%s %s %s %s %s" % (cmd, a, b, c, fn))
cmd = os.environ.get("HGMERGE", "hgmerge")
r = os.system("%s %s %s %s" % (cmd, a, b, c))
if r:
self.ui.warn("merging %s failed!\n" % f)
......
......@@ -29,4 +29,4 @@
glob.glob('templates/map-*') +
glob.glob('templates/*.tmpl'))],
cmdclass = { 'install_data' : install_package_data },
scripts=['hg'])
scripts=['hg', 'hgmerge'])
merge $1 $3 $2 || tkdiff -conflict $1 -o $1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment