# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1528215367 -7200 # Tue Jun 05 18:16:07 2018 +0200 # Node ID 79b9bd9659a2b3f9815491a371b988eb7c458726 # Parent 66f046116105a306f7c701c9a5cf97d7b6c926c0 # EXP-Topic internal-phase.prepare # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 79b9bd9659a2 phase: use `trackedphases` in `_getphaserevsnative`
Instead of manually listing secret and draft, simply use the `trackedphases` constant. The constant is already used by `_getphaserevsnative`. diff --git a/mercurial/phases.py b/mercurial/phases.py --- a/mercurial/phases.py +++ b/mercurial/phases.py @@ -272,19 +272,16 @@ class phasecache(object): repo = repo.unfiltered() cl = repo.changelog self._phasesets = [set() for phase in allphases] - roots = pycompat.maplist(cl.rev, self.phaseroots[secret]) - if roots: - ps = set(cl.descendants(roots)) - for root in roots: - ps.add(root) - self._phasesets[secret] = ps - roots = pycompat.maplist(cl.rev, self.phaseroots[draft]) - if roots: - ps = set(cl.descendants(roots)) - for root in roots: - ps.add(root) - ps.difference_update(self._phasesets[secret]) - self._phasesets[draft] = ps + lowerroots = set() + for phase in reversed(trackedphases): + roots = pycompat.maplist(cl.rev, self.phaseroots[phase]) + if roots: + ps = set(cl.descendants(roots)) + for root in roots: + ps.add(root) + ps.difference_update(lowerroots) + lowerroots.update(ps) + self._phasesets[phase] = ps self._loadedrevslen = len(cl) def loadphaserevs(self, repo): _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel