mercurial/revlog.py
changeset 18988 5bae936764bb
parent 18987 3605d4e7e618
child 18989 12a3474c1634
equal deleted inserted replaced
18987:3605d4e7e618 18988:5bae936764bb
   704 
   704 
   705     def ancestor(self, a, b):
   705     def ancestor(self, a, b):
   706         """calculate the least common ancestor of nodes a and b"""
   706         """calculate the least common ancestor of nodes a and b"""
   707 
   707 
   708         a, b = self.rev(a), self.rev(b)
   708         a, b = self.rev(a), self.rev(b)
   709         ancs = ancestor.ancestors(self.parentrevs, a, b)
   709         try:
       
   710             ancs = self.index.ancestors(a, b)
       
   711             old = ancestor.ancestors(self.parentrevs, a, b)
       
   712             assert set(ancs) == old, ('opinions differ over ancestor(%d, %d)' %
       
   713                                       (a, b))
       
   714         except (AttributeError, OverflowError):
       
   715             ancs = ancestor.ancestors(self.parentrevs, a, b)
   710         if ancs:
   716         if ancs:
   711             # choose a consistent winner when there's a tie
   717             # choose a consistent winner when there's a tie
   712             return min(map(self.node, ancs))
   718             return min(map(self.node, ancs))
   713         return nullid
   719         return nullid
   714 
   720