--- a/mercurial/dagutil.py Fri Aug 17 19:45:13 2018 +0000
+++ b/mercurial/dagutil.py Fri Aug 17 19:48:52 2018 +0000
@@ -20,21 +20,6 @@
def __init__(self, revlog):
self._revlog = revlog
- def parents(self, ix):
- rlog = self._revlog
- idx = rlog.index
- revdata = idx[ix]
- prev = revdata[5]
- if prev != nullrev:
- prev2 = revdata[6]
- if prev2 == nullrev:
- return [prev]
- return [prev, prev2]
- prev2 = revdata[6]
- if prev2 != nullrev:
- return [prev2]
- return []
-
def linearize(self, ixs):
'''linearize and topologically sort a list of revisions
@@ -45,7 +30,7 @@
parent, then adding the rev itself to the output list.
'''
sorted = []
- visit = list(dagop.headrevs(ixs, self.parents))
+ visit = list(dagop.headrevs(ixs, self._revlog.parentrevs))
visit.sort(reverse=True)
finished = set()
@@ -58,7 +43,7 @@
finished.add(cur)
else:
visit.append(-cur - 1)
- visit += [p for p in self.parents(cur)
- if p in ixs and p not in finished]
+ visit += [p for p in self._revlog.parentrevs(cur)
+ if p != nullrev and p in ixs and p not in finished]
assert len(sorted) == len(ixs)
return sorted