equal
deleted
inserted
replaced
1381 pl = self.dirstate.parents() |
1381 pl = self.dirstate.parents() |
1382 if not force and pl[1] != nullid: |
1382 if not force and pl[1] != nullid: |
1383 self.ui.warn(_("aborting: outstanding uncommitted merges\n")) |
1383 self.ui.warn(_("aborting: outstanding uncommitted merges\n")) |
1384 return 1 |
1384 return 1 |
1385 |
1385 |
|
1386 err = False |
|
1387 |
1386 p1, p2 = pl[0], node |
1388 p1, p2 = pl[0], node |
1387 pa = self.changelog.ancestor(p1, p2) |
1389 pa = self.changelog.ancestor(p1, p2) |
1388 m1n = self.changelog.read(p1)[0] |
1390 m1n = self.changelog.read(p1)[0] |
1389 m2n = self.changelog.read(p2)[0] |
1391 m2n = self.changelog.read(p2)[0] |
1390 man = self.manifest.ancestor(m1n, m2n) |
1392 man = self.manifest.ancestor(m1n, m2n) |
1596 files = merge.keys() |
1598 files = merge.keys() |
1597 files.sort() |
1599 files.sort() |
1598 for f in files: |
1600 for f in files: |
1599 self.ui.status(_("merging %s\n") % f) |
1601 self.ui.status(_("merging %s\n") % f) |
1600 my, other, flag = merge[f] |
1602 my, other, flag = merge[f] |
1601 self.merge3(f, my, other) |
1603 ret = self.merge3(f, my, other) |
|
1604 if ret: |
|
1605 err = True |
1602 util.set_exec(self.wjoin(f), flag) |
1606 util.set_exec(self.wjoin(f), flag) |
1603 if moddirstate: |
1607 if moddirstate: |
1604 if branch_merge: |
1608 if branch_merge: |
1605 # We've done a branch merge, mark this file as merged |
1609 # We've done a branch merge, mark this file as merged |
1606 # so that we properly record the merger later |
1610 # so that we properly record the merger later |
1629 else: |
1633 else: |
1630 self.dirstate.forget(remove) |
1634 self.dirstate.forget(remove) |
1631 |
1635 |
1632 if moddirstate: |
1636 if moddirstate: |
1633 self.dirstate.setparents(p1, p2) |
1637 self.dirstate.setparents(p1, p2) |
|
1638 return err |
1634 |
1639 |
1635 def merge3(self, fn, my, other): |
1640 def merge3(self, fn, my, other): |
1636 """perform a 3-way merge in the working directory""" |
1641 """perform a 3-way merge in the working directory""" |
1637 |
1642 |
1638 def temp(prefix, node): |
1643 def temp(prefix, node): |
1659 if r: |
1664 if r: |
1660 self.ui.warn(_("merging %s failed!\n") % fn) |
1665 self.ui.warn(_("merging %s failed!\n") % fn) |
1661 |
1666 |
1662 os.unlink(b) |
1667 os.unlink(b) |
1663 os.unlink(c) |
1668 os.unlink(c) |
|
1669 return r |
1664 |
1670 |
1665 def verify(self): |
1671 def verify(self): |
1666 filelinkrevs = {} |
1672 filelinkrevs = {} |
1667 filenodes = {} |
1673 filenodes = {} |
1668 changesets = revisions = files = 0 |
1674 changesets = revisions = files = 0 |