Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/localrepo.py @ 1663:d529cdc0a3ee
return a non-zero exit code when a merge failed
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Mon, 30 Jan 2006 12:02:06 +1300 |
parents | c6ffedc4f11b |
children | daff3ef0de8d |
comparison
equal
deleted
inserted
replaced
1660:b2df93c56ac4 | 1663:d529cdc0a3ee |
---|---|
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 |