mercurial/phases.py
changeset 24519 de3acfabaddc
parent 24444 27e3ba73fbb1
child 24520 34e8bfc21f94
equal deleted inserted replaced
24518:dd5e56f08d13 24519:de3acfabaddc
   177         nativeroots = []
   177         nativeroots = []
   178         for phase in trackedphases:
   178         for phase in trackedphases:
   179             nativeroots.append(map(repo.changelog.rev, self.phaseroots[phase]))
   179             nativeroots.append(map(repo.changelog.rev, self.phaseroots[phase]))
   180         return repo.changelog.computephases(nativeroots)
   180         return repo.changelog.computephases(nativeroots)
   181 
   181 
       
   182     def computephaserevspure(self, repo):
       
   183         repo = repo.unfiltered()
       
   184         revs = [public] * len(repo.changelog)
       
   185         self._phaserevs = revs
       
   186         self._populatephaseroots(repo)
       
   187         for phase in trackedphases:
       
   188             roots = map(repo.changelog.rev, self.phaseroots[phase])
       
   189             if roots:
       
   190                 for rev in roots:
       
   191                     revs[rev] = phase
       
   192                 for rev in repo.changelog.descendants(roots):
       
   193                     revs[rev] = phase
       
   194 
   182     def getphaserevs(self, repo):
   195     def getphaserevs(self, repo):
   183         if self._phaserevs is None:
   196         if self._phaserevs is None:
   184             try:
   197             try:
   185                 self._phaserevs = self.getphaserevsnative(repo)
   198                 self._phaserevs = self.getphaserevsnative(repo)
   186             except AttributeError:
   199             except AttributeError:
   187                 repo = repo.unfiltered()
   200                 self.computephaserevspure(repo)
   188                 revs = [public] * len(repo.changelog)
       
   189                 self._phaserevs = revs
       
   190                 self._populatephaseroots(repo)
       
   191                 for phase in trackedphases:
       
   192                     roots = map(repo.changelog.rev, self.phaseroots[phase])
       
   193                     if roots:
       
   194                         for rev in roots:
       
   195                             revs[rev] = phase
       
   196                         for rev in repo.changelog.descendants(roots):
       
   197                             revs[rev] = phase
       
   198         return self._phaserevs
   201         return self._phaserevs
   199 
   202 
   200     def invalidate(self):
   203     def invalidate(self):
   201         self._phaserevs = None
   204         self._phaserevs = None
   202 
   205