Skip to content
Snippets Groups Projects
Commit bbb855c4 authored by Gregory Szorc's avatar Gregory Szorc
Browse files

dagutil: remove ability to invert instances

The previous commit removed the last consumer of this feature.

.. api:: remove inverse() methods from classes in dagutil

Differential Revision: https://phab.mercurial-scm.org/D4323
parent 71d83b31
No related branches found
No related tags found
No related merge requests found
......@@ -21,10 +21,7 @@
Pluralized params are lists or sets.
'''
def __init__(self):
self._inverse = None
def parents(self, ix):
'''list of parents ixs of ix'''
raise NotImplementedError
......@@ -27,11 +24,7 @@
def parents(self, ix):
'''list of parents ixs of ix'''
raise NotImplementedError
def inverse(self):
'''inverse DAG, where parents becomes children, etc.'''
raise NotImplementedError
def headsetofconnecteds(self, ixs):
'''
subset of connected list of ixs so that no node has a descendant in it
......@@ -83,11 +76,6 @@
return [prev2]
return []
def inverse(self):
if self._inverse is None:
self._inverse = inverserevlogdag(self)
return self._inverse
def headsetofconnecteds(self, ixs):
if not ixs:
return set()
......@@ -130,41 +118,3 @@
if p in ixs and p not in finished]
assert len(sorted) == len(ixs)
return sorted
class inverserevlogdag(revlogbaseddag, genericdag):
'''inverse of an existing revlog dag; see revlogdag.inverse()'''
def __init__(self, orig):
revlogbaseddag.__init__(self, orig._revlog)
self._orig = orig
self._children = {}
self._roots = []
self._walkfrom = len(self._revlog) - 1
def _walkto(self, walkto):
rev = self._walkfrom
cs = self._children
roots = self._roots
idx = self._revlog.index
while rev >= walkto:
data = idx[rev]
isroot = True
for prev in [data[5], data[6]]: # parent revs
if prev != nullrev:
cs.setdefault(prev, []).append(rev)
isroot = False
if isroot:
roots.append(rev)
rev -= 1
self._walkfrom = rev
def parents(self, ix):
if ix is None:
return []
if ix <= self._walkfrom:
self._walkto(ix)
return self._children.get(ix, [])
def inverse(self):
return self._orig
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment