changeset 2190:f4cc3cf27a3a

revsfromrange: remove reference to '_revs' in merge slicing Given '_revs' is a property from the cache, we use the official method of the object we are on instead. That method should be using the same cache than the property if available.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Wed, 22 Mar 2017 20:44:29 +0100
parents 40b0e1dbed90
children dd5b948a98b4
files hgext3rd/evolve/stablerange.py
diffstat 1 files changed, 13 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/evolve/stablerange.py	Wed Mar 22 20:37:27 2017 +0100
+++ b/hgext3rd/evolve/stablerange.py	Wed Mar 22 20:44:29 2017 +0100
@@ -349,34 +349,36 @@
         cl = repo.changelog
 
         result = []
-        bottom = rangeid._revs[:localindex]
-        top = stablerange(repo, rangeid[0], globalindex, rangeid._revs[localindex:])
+        allrevs = self.revsfromrange(repo, rangeid)
+        toprevs = allrevs[localindex:]
+        bottomrevs = allrevs[:localindex]
+        top = stablerange(repo, rangeid[0], globalindex, toprevs)
         #
         rangedepth = repo.stablerange.depthrev(repo, rangeid[0])
-        toprootdepth = repo.stablerange.depthrev(repo, top._revs[0])
+        toprootdepth = repo.stablerange.depthrev(repo, toprevs[0])
         if toprootdepth + self.rangelength(repo, top) == rangedepth + 1:
-            bheads = [bottom[-1]]
+            bheads = [bottomrevs[-1]]
         else:
-            bheads = set(bottom)
+            bheads = set(bottomrevs)
             parentrevs = cl.parentrevs
             du = bheads.difference_update
-            for r in bottom:
+            for r in bottomrevs:
                 du(parentrevs(r))
             # if len(bheads) == 1:
             #     assert 1 == len(repo.revs('roots(%ld)', top._revs))
         if len(bheads) == 1:
-            newhead = bottom[-1]
+            newhead = bottomrevs[-1]
             bottomdepth = repo.stablerange.depthrev(repo, newhead)
-            newstart = bottomdepth - len(bottom)
-            result.append(stablerange(repo, newhead, newstart, bottom))
+            newstart = bottomdepth - len(bottomrevs)
+            result.append(stablerange(repo, newhead, newstart, bottomrevs))
         else:
             # assert 1 < len(bheads), (toprootdepth, len(top), len(rangeid))
             cl = repo.changelog
             for h in bheads:
                 subset = cl.ancestors([h], inclusive=True)
-                hrevs = [r for r in bottom if r in subset]
+                hrevs = [r for r in bottomrevs if r in subset]
                 start = repo.stablerange.depthrev(repo, h) - len(hrevs)
-                entry = stablerange(repo, h, start, [r for r in bottom if r in subset])
+                entry = stablerange(repo, h, start, [r for r in bottomrevs if r in subset])
                 result.append(entry)
         result.append(top)
         return result