# HG changeset patch # User Pierre-Yves David # Date 1320362420 -3600 # Node ID e80d0d3198f0f1fb186eecc49b5a98c0670aed9a # Parent ccb7de21625a6a29af7dd02b82ef2dd15f6e79e2 phases: add a cache allowing to know in which phase a changeset is diff -r ccb7de21625a -r e80d0d3198f0 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Nov 06 11:57:24 2011 -0600 +++ b/mercurial/localrepo.py Fri Nov 04 00:20:20 2011 +0100 @@ -174,6 +174,18 @@ def _phaseroots(self): return phases.readroots(self) + @propertycache + def _phaserev(self): + cache = [0] * len(self) + for phase in phases.trackedphases: + roots = map(self.changelog.rev, self._phaseroots[phase]) + if roots: + for rev in roots: + cache[rev] = phase + for rev in self.changelog.descendants(*roots): + cache[rev] = phase + return cache + @filecache('00changelog.i', True) def changelog(self): c = changelog.changelog(self.sopener)