# HG changeset patch # User Gregory Szorc # Date 1534533876 0 # Node ID 4cf3f54cc8e7f896983f76850855311b32fbe64b # Parent fec01c69b0f037e25917be37f2d5546989f1397d dagutil: remove unused classes We only directly use revlogdag in changegroup code. We don't need all this abstraction. So remove various classes and levels of inheritance. Differential Revision: https://phab.mercurial-scm.org/D4325 diff -r fec01c69b0f0 -r 4cf3f54cc8e7 mercurial/dagutil.py --- a/mercurial/dagutil.py Fri Aug 17 18:23:47 2018 +0000 +++ b/mercurial/dagutil.py Fri Aug 17 19:24:36 2018 +0000 @@ -10,56 +10,11 @@ from .node import nullrev -class basedag(object): - '''generic interface for DAGs - - terms: - "ix" (short for index) identifies a nodes internally, - "id" identifies one externally. - - All params are ixs unless explicitly suffixed otherwise. - Pluralized params are lists or sets. - ''' - - def parents(self, ix): - '''list of parents ixs of ix''' - raise NotImplementedError - - def headsetofconnecteds(self, ixs): - ''' - subset of connected list of ixs so that no node has a descendant in it - - By "connected list" we mean that if an ancestor and a descendant are in - the list, then so is at least one path connecting them. - ''' - raise NotImplementedError - -class genericdag(basedag): - '''generic implementations for DAGs''' - - def headsetofconnecteds(self, ixs): - hds = set(ixs) - if not hds: - return hds - for n in ixs: - for p in self.parents(n): - hds.discard(p) - assert hds - return hds - - -class revlogbaseddag(basedag): - '''generic dag interface to a revlog''' - - def __init__(self, revlog): - basedag.__init__(self) - self._revlog = revlog - -class revlogdag(revlogbaseddag): +class revlogdag(object): '''dag interface to a revlog''' def __init__(self, revlog): - revlogbaseddag.__init__(self, revlog) + self._revlog = revlog def parents(self, ix): rlog = self._revlog