give more info to hgmerge script.

This commit is contained in:
Vadim Gelfer 2006-03-10 23:34:02 -08:00
parent 97a9d5c4ee
commit cb34430359
2 changed files with 18 additions and 5 deletions

View File

@ -4,11 +4,15 @@
#
# This tries to find a way to do three-way merge on the current system.
# The result ought to end up in $1.
#
# Environment variables set by Mercurial:
# HG_ROOT repo root
# HG_FILE name of file within repo
# HG_MY_NODE revision being merged
# HG_OTHER_NODE revision being merged
set -e # bail out quickly on failure
echo $1 $2 $3
LOCAL="$1"
BASE="$2"
OTHER="$3"

View File

@ -1636,10 +1636,12 @@ class localrepository(object):
# merge the tricky bits
files = merge.keys()
files.sort()
xp1 = hex(p1)
xp2 = hex(p2)
for f in files:
self.ui.status(_("merging %s\n") % f)
my, other, flag = merge[f]
ret = self.merge3(f, my, other)
ret = self.merge3(f, my, other, xp1, xp2)
if ret:
err = True
util.set_exec(self.wjoin(f), flag)
@ -1677,7 +1679,7 @@ class localrepository(object):
self.dirstate.setparents(p1, p2)
return err
def merge3(self, fn, my, other):
def merge3(self, fn, my, other, p1, p2):
"""perform a 3-way merge in the working directory"""
def temp(prefix, node):
@ -1700,7 +1702,14 @@ class localrepository(object):
cmd = (os.environ.get("HGMERGE") or self.ui.config("ui", "merge")
or "hgmerge")
r = os.system('%s "%s" "%s" "%s"' % (cmd, a, b, c))
r = util.system('%s "%s" "%s" "%s"' % (cmd, a, b, c),
environ={'HG_ROOT': self.root,
'HG_FILE': fn,
'HG_MY_NODE': p1,
'HG_OTHER_NODE': p2,
'HG_FILE_MY_NODE': hex(my),
'HG_FILE_OTHER_NODE': hex(other),
'HG_FILE_BASE_NODE': hex(base)})
if r:
self.ui.warn(_("merging %s failed!\n") % fn)