# HG changeset patch # User Alexis S. L. Carvalho # Date 1191550897 10800 # Node ID d7d395fb7cd52cb6299c45d8948e3c6924743d39 # Parent 6874368120dcaeb93ac2543b1a9527828f3a5e00 convert_svn: add --filemap support diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -146,6 +146,7 @@ class convert_svn(converter_source): self.last_changed = self.latest(self.module, latest) self.head = self.revid(self.last_changed) + self._changescache = None def setrevmap(self, revmap, order): lastrevs = {} @@ -206,6 +207,9 @@ class convert_svn(converter_source): return self.modecache[(file, rev)] def getchanges(self, rev): + if self._changescache and self._changescache[0] == rev: + return self._changescache[1] + self._changescache = None self.modecache = {} (paths, parents) = self.paths[rev] files, copies = self.expandpaths(rev, paths, parents) @@ -216,6 +220,11 @@ class convert_svn(converter_source): del self.paths[rev] return (files, copies) + def getchangedfiles(self, rev, i): + changes = self.getchanges(rev) + self._changescache = (rev, changes) + return [f[0] for f in changes[0]] + def getcommit(self, rev): if rev not in self.commits: uuid, module, revnum = self.revsplit(rev) diff --git a/tests/test-convert-svn b/tests/test-convert-svn --- a/tests/test-convert-svn +++ b/tests/test-convert-svn @@ -51,3 +51,10 @@ cd .. echo % test incremental conversion hg convert $svnurl +echo % test filemap +echo 'include b' > filemap +hg convert --filemap filemap $svnurl fmap +echo '[extensions]' >> $HGRCPATH +echo 'hgext.graphlog =' >> $HGRCPATH +hg glog -R fmap --template '#rev# #desc|firstline# files: #files#\n' + diff --git a/tests/test-convert-svn.out b/tests/test-convert-svn.out --- a/tests/test-convert-svn.out +++ b/tests/test-convert-svn.out @@ -30,3 +30,15 @@ scanning source... sorting... converting... 0 changeb +% test filemap +initializing destination fmap repository +scanning source... +sorting... +converting... +2 init +1 changea +0 changeb +o 1 changeb files: b +| +o 0 changea files: b +