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.
--- 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: