comparison mercurial/localrepo.py @ 1883:b98160cfb2f3

give more info to hgmerge script.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Fri, 10 Mar 2006 23:34:02 -0800
parents c0320567931f
children c4d577262d00
comparison
equal deleted inserted replaced
1882:c0320567931f 1883:b98160cfb2f3
1634 self.dirstate.update([f], 'n') 1634 self.dirstate.update([f], 'n')
1635 1635
1636 # merge the tricky bits 1636 # merge the tricky bits
1637 files = merge.keys() 1637 files = merge.keys()
1638 files.sort() 1638 files.sort()
1639 xp1 = hex(p1)
1640 xp2 = hex(p2)
1639 for f in files: 1641 for f in files:
1640 self.ui.status(_("merging %s\n") % f) 1642 self.ui.status(_("merging %s\n") % f)
1641 my, other, flag = merge[f] 1643 my, other, flag = merge[f]
1642 ret = self.merge3(f, my, other) 1644 ret = self.merge3(f, my, other, xp1, xp2)
1643 if ret: 1645 if ret:
1644 err = True 1646 err = True
1645 util.set_exec(self.wjoin(f), flag) 1647 util.set_exec(self.wjoin(f), flag)
1646 if moddirstate: 1648 if moddirstate:
1647 if branch_merge: 1649 if branch_merge:
1675 1677
1676 if moddirstate: 1678 if moddirstate:
1677 self.dirstate.setparents(p1, p2) 1679 self.dirstate.setparents(p1, p2)
1678 return err 1680 return err
1679 1681
1680 def merge3(self, fn, my, other): 1682 def merge3(self, fn, my, other, p1, p2):
1681 """perform a 3-way merge in the working directory""" 1683 """perform a 3-way merge in the working directory"""
1682 1684
1683 def temp(prefix, node): 1685 def temp(prefix, node):
1684 pre = "%s~%s." % (os.path.basename(fn), prefix) 1686 pre = "%s~%s." % (os.path.basename(fn), prefix)
1685 (fd, name) = tempfile.mkstemp("", pre) 1687 (fd, name) = tempfile.mkstemp("", pre)
1698 self.ui.debug(_("file %s: my %s other %s ancestor %s\n") % 1700 self.ui.debug(_("file %s: my %s other %s ancestor %s\n") %
1699 (fn, short(my), short(other), short(base))) 1701 (fn, short(my), short(other), short(base)))
1700 1702
1701 cmd = (os.environ.get("HGMERGE") or self.ui.config("ui", "merge") 1703 cmd = (os.environ.get("HGMERGE") or self.ui.config("ui", "merge")
1702 or "hgmerge") 1704 or "hgmerge")
1703 r = os.system('%s "%s" "%s" "%s"' % (cmd, a, b, c)) 1705 r = util.system('%s "%s" "%s" "%s"' % (cmd, a, b, c),
1706 environ={'HG_ROOT': self.root,
1707 'HG_FILE': fn,
1708 'HG_MY_NODE': p1,
1709 'HG_OTHER_NODE': p2,
1710 'HG_FILE_MY_NODE': hex(my),
1711 'HG_FILE_OTHER_NODE': hex(other),
1712 'HG_FILE_BASE_NODE': hex(base)})
1704 if r: 1713 if r:
1705 self.ui.warn(_("merging %s failed!\n") % fn) 1714 self.ui.warn(_("merging %s failed!\n") % fn)
1706 1715
1707 os.unlink(b) 1716 os.unlink(b)
1708 os.unlink(c) 1717 os.unlink(c)