# HG changeset patch # User Boris Feld # Date 1528215367 -7200 # Node ID fd7376fa60e7350d03fc257c9b609732a37c6284 # Parent 37e56607cbb99527ccafcca03ab669f38ecdfe5c 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 -r 37e56607cbb9 -r fd7376fa60e7 mercurial/phases.py --- a/mercurial/phases.py Fri Aug 24 17:45:46 2018 -0400 +++ b/mercurial/phases.py Tue Jun 05 18:16:07 2018 +0200 @@ -272,19 +272,16 @@ 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):