1632 self.dirstate.update([f], 'n', st_mtime=-1) |
1632 self.dirstate.update([f], 'n', st_mtime=-1) |
1633 else: |
1633 else: |
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 failedmerge = [] |
1637 files = merge.keys() |
1638 files = merge.keys() |
1638 files.sort() |
1639 files.sort() |
1639 xp1 = hex(p1) |
1640 xp1 = hex(p1) |
1640 xp2 = hex(p2) |
1641 xp2 = hex(p2) |
1641 for f in files: |
1642 for f in files: |
1642 self.ui.status(_("merging %s\n") % f) |
1643 self.ui.status(_("merging %s\n") % f) |
1643 my, other, flag = merge[f] |
1644 my, other, flag = merge[f] |
1644 ret = self.merge3(f, my, other, xp1, xp2) |
1645 ret = self.merge3(f, my, other, xp1, xp2) |
1645 if ret: |
1646 if ret: |
1646 err = True |
1647 err = True |
|
1648 failedmerge.append(f) |
1647 util.set_exec(self.wjoin(f), flag) |
1649 util.set_exec(self.wjoin(f), flag) |
1648 if moddirstate: |
1650 if moddirstate: |
1649 if branch_merge: |
1651 if branch_merge: |
1650 # We've done a branch merge, mark this file as merged |
1652 # We've done a branch merge, mark this file as merged |
1651 # so that we properly record the merger later |
1653 # so that we properly record the merger later |
1675 else: |
1677 else: |
1676 self.dirstate.forget(remove) |
1678 self.dirstate.forget(remove) |
1677 |
1679 |
1678 if moddirstate: |
1680 if moddirstate: |
1679 self.dirstate.setparents(p1, p2) |
1681 self.dirstate.setparents(p1, p2) |
|
1682 |
|
1683 stat = ((len(get), _("updated")), |
|
1684 (len(merge) - len(failedmerge), _("merged")), |
|
1685 (len(remove), _("removed")), |
|
1686 (len(failedmerge), _("unresolved"))) |
|
1687 note = ", ".join([_("%d files %s") % s for s in stat]) |
|
1688 self.ui.note("%s\n" % note) |
|
1689 if moddirstate and branch_merge: |
|
1690 self.ui.note(_("(branch merge, don't forget to commit)\n")) |
|
1691 |
1680 return err |
1692 return err |
1681 |
1693 |
1682 def merge3(self, fn, my, other, p1, p2): |
1694 def merge3(self, fn, my, other, p1, p2): |
1683 """perform a 3-way merge in the working directory""" |
1695 """perform a 3-way merge in the working directory""" |
1684 |
1696 |