# HG changeset patch # User Alexis S. L. Carvalho # Date 1191550897 10800 # Node ID d7d395fb7cd52cb6299c45d8948e3c6924743d39 # Parent 6874368120dcaeb93ac2543b1a9527828f3a5e00 convert_svn: add --filemap support diff -r 6874368120dc -r d7d395fb7cd5 hgext/convert/subversion.py --- a/hgext/convert/subversion.py Thu Oct 04 23:21:37 2007 -0300 +++ b/hgext/convert/subversion.py Thu Oct 04 23:21:37 2007 -0300 @@ -146,6 +146,7 @@ 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 @@ 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 @@ 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 -r 6874368120dc -r d7d395fb7cd5 tests/test-convert-svn --- a/tests/test-convert-svn Thu Oct 04 23:21:37 2007 -0300 +++ b/tests/test-convert-svn Thu Oct 04 23:21:37 2007 -0300 @@ -51,3 +51,10 @@ 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 -r 6874368120dc -r d7d395fb7cd5 tests/test-convert-svn.out --- a/tests/test-convert-svn.out Thu Oct 04 23:21:37 2007 -0300 +++ b/tests/test-convert-svn.out Thu Oct 04 23:21:37 2007 -0300 @@ -30,3 +30,15 @@ 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 +