Mercurial > hg
changeset 39271:fd7376fa60e7
phase: use `trackedphases` in `_getphaserevsnative`
Instead of manually listing secret and draft, simply use the `trackedphases`
constant. The constant is already used by `_getphaserevsnative`.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 05 Jun 2018 18:16:07 +0200 |
parents | 37e56607cbb9 |
children | 160bd45cc6af |
files | mercurial/phases.py |
diffstat | 1 files changed, 10 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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):