changeset 5382:d7d395fb7cd5

convert_svn: add --filemap support
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Thu, 04 Oct 2007 23:21:37 -0300
parents 6874368120dc
children caadfbc439c6
files hgext/convert/subversion.py tests/test-convert-svn tests/test-convert-svn.out
diffstat 3 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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'
+
--- 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
+