mercurial/revlog.py
changeset 3139 1fd1cdcc4200
parent 3136 b1db258e875c
child 3152 d01e4cb2f5f2
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -1016,10 +1016,14 @@ class revlog(object):
     def ancestor(self, a, b):
         """calculate the least common ancestor of nodes a and b"""
 
-        def parents(node):
-            return [p for p in self.parents(node) if p != nullid]
+        def parents(rev):
+            return [p for p in self.parentrevs(rev) if p != -1]
 
-        return ancestor.ancestor(a, b, parents) or nullid
+        c = ancestor.ancestor(self.rev(a), self.rev(b), parents)
+        if c is None:
+            return nullid
+
+        return self.node(c)
 
     def group(self, nodelist, lookup, infocollect=None):
         """calculate a delta group