[PATCH 1 of 2] phases: move pure phase computation in a function

Laurent Charignon lcharignon at fb.com
Mon Mar 30 20:04:23 UTC 2015


# HG changeset patch
# User Laurent Charignon <lcharignon at fb.com>
# Date 1427744895 25200
#      Mon Mar 30 12:48:15 2015 -0700
# Node ID 84c46e062e718bc988af0aba11651c2c974c5d30
# Parent  efa094701a05d58d505c3b0c3b3c73dba4e51e97
phases: move pure phase computation in a function

diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -179,22 +179,25 @@
             nativeroots.append(map(repo.changelog.rev, self.phaseroots[phase]))
         return repo.changelog.computephases(nativeroots)
 
+    def computephaserevspure(self, repo):
+        repo = repo.unfiltered()
+        revs = [public] * len(repo.changelog)
+        self._phaserevs = revs
+        self._populatephaseroots(repo)
+        for phase in trackedphases:
+            roots = map(repo.changelog.rev, self.phaseroots[phase])
+            if roots:
+                for rev in roots:
+                    revs[rev] = phase
+                for rev in repo.changelog.descendants(roots):
+                    revs[rev] = phase
+
     def getphaserevs(self, repo):
         if self._phaserevs is None:
             try:
                 self._phaserevs = self.getphaserevsnative(repo)
             except AttributeError:
-                repo = repo.unfiltered()
-                revs = [public] * len(repo.changelog)
-                self._phaserevs = revs
-                self._populatephaseroots(repo)
-                for phase in trackedphases:
-                    roots = map(repo.changelog.rev, self.phaseroots[phase])
-                    if roots:
-                        for rev in roots:
-                            revs[rev] = phase
-                        for rev in repo.changelog.descendants(roots):
-                            revs[rev] = phase
+                self.computephaserevspure(repo)
         return self._phaserevs
 
     def invalidate(self):


More information about the Mercurial-devel mailing list