convert: replace cache of (m,a,r) by (ma,r)
authorMartin von Zweigbergk <martinvonz@google.com>
Sun, 10 Jan 2016 21:07:34 -0800
changeset 27718 6e1fba0fe453
parent 27717 5deff127286f
child 27719 7ce8a13b8d77
convert: replace cache of (m,a,r) by (ma,r) The next commit will rewrite the way we find changes between two manifests. By making the cache not care about the difference between added and modified files, we don't require the rewritten code to care about that difference either. Also extract the call to ctx.status() to simplify the next commit.
hgext/convert/hg.py
--- a/hgext/convert/hg.py	Sat Jan 09 21:42:48 2016 -0800
+++ b/hgext/convert/hg.py	Sun Jan 10 21:07:34 2016 -0800
@@ -507,6 +507,10 @@
         except error.LookupError:
             return None, None
 
+    def _changedfiles(self, ctx1, ctx2):
+        m, a, r = ctx1.status(ctx2)[:3]
+        return (m + a, r)
+
     def getchanges(self, rev, full):
         ctx = self._changectx(rev)
         parents = self._parents(ctx)
@@ -514,12 +518,12 @@
             files = copyfiles = ctx.manifest()
         if parents:
             if self._changescache[0] == rev:
-                m, a, r = self._changescache[1]
+                ma, r = self._changescache[1]
             else:
-                m, a, r = self.repo.status(parents[0].node(), ctx.node())[:3]
+                ma, r = self._changedfiles(parents[0], ctx)
             if not full:
-                files = m + a + r
-            copyfiles = m + a
+                files = ma + r
+            copyfiles = ma
         # _getcopies() is also run for roots and before filtering so missing
         # revlogs are detected early
         copies = self._getcopies(ctx, parents, copyfiles)
@@ -582,16 +586,16 @@
         parents = self._parents(ctx)
         if not parents and i is None:
             i = 0
-            changes = [], ctx.manifest().keys(), []
+            ma, r = ctx.manifest().keys(), []
         else:
             i = i or 0
-            changes = self.repo.status(parents[i].node(), ctx.node())[:3]
-        changes = [[f for f in l if f not in self.ignored] for l in changes]
+            ma, r = self._changedfiles(parents[i], ctx)
+        ma, r = [[f for f in l if f not in self.ignored] for l in (ma, r)]
 
         if i == 0:
-            self._changescache = (rev, changes)
+            self._changescache = (rev, (ma, r))
 
-        return changes[0] + changes[1] + changes[2]
+        return ma + r
 
     def converted(self, rev, destrev):
         if self.convertfp is None: