equal
deleted
inserted
replaced
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) |