Mercurial > public > mercurial-scm > hg
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) |