revlog: introduce commonancestorsheads method
Very similar to commonancestors but giving all the common ancestors heads.
--- a/mercurial/revlog.py Thu Apr 17 19:58:08 2014 +0200
+++ b/mercurial/revlog.py Thu Apr 17 20:01:35 2014 +0200
@@ -734,6 +734,15 @@
break
return False
+ def commonancestorsheads(self, a, b):
+ """calculate all the heads of the common ancestors of nodes a and b"""
+ a, b = self.rev(a), self.rev(b)
+ try:
+ ancs = self.index.commonancestorsheads(a, b)
+ except (AttributeError, OverflowError): # C implementation failed
+ ancs = ancestor.commonancestorsheads(self.parentrevs, a, b)
+ return map(self.node, ancs)
+
def commonancestors(self, a, b):
"""calculate the least common ancestors of nodes a and b"""
a, b = self.rev(a), self.rev(b)