convert: svn: some improvements in memory usage
authorBrendan Cully <brendan@kublai.com>
Thu, 05 Jul 2007 14:31:13 -0700
changeset 4837 4cdbaa885d8a
parent 4814 744371157212
child 4838 61343b40a141
convert: svn: some improvements in memory usage
hgext/convert/subversion.py
--- a/hgext/convert/subversion.py	Thu Jul 05 12:45:41 2007 -0700
+++ b/hgext/convert/subversion.py	Thu Jul 05 14:31:13 2007 -0700
@@ -188,13 +188,18 @@
             entries = []
             rev = self.revid(revnum)
             parents = []
+
+            # branch log might return entries for a parent we already have
+            if rev in self.commits:
+                return
+
             try:
                 branch = self.module.split("/")[-1]
                 if branch == 'trunk':
                     branch = ''
             except IndexError:
                 branch = None
-                
+
             for path in sorted(orig_paths):
                 # self.ui.write("path %s\n" % path)
                 if path == self.module: # Follow branching back in history
@@ -487,6 +492,8 @@
         files = self.files[rev]
         cl = files
         cl.sort()
+        # caller caches the result, so free it here to release memory
+        del self.files[rev]
         return cl
 
     def getcommit(self, rev):
@@ -496,7 +503,10 @@
             self.reparent(module)
             stop = self.lastrevs.get(module, 0)
             self._fetch_revisions(from_revnum=revnum, to_revnum=stop)
-        return self.commits[rev]
+        commit = self.commits[rev]
+        # caller caches the result, so free it here to release memory
+        del self.commits[rev]
+        return commit
 
     def gettags(self):
         tags = {}