Rev 284: Couple of minor performance improvements. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev

Jelmer Vernooij jelmer at samba.org
Sun Dec 24 22:24:31 GMT 2006


------------------------------------------------------------
revno: 284
revision-id: jelmer at samba.org-20061224222332-x80vi2r6g4veh2jx
parent: jelmer at samba.org-20061224002517-f4670do78x74rd0t
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Sun 2006-12-24 23:23:32 +0100
message:
  Couple of minor performance improvements.
modified:
  branchprops.py                 branchprops.py-20061223204623-80lvm7pjrpsgk0dd-1
  logwalker.py                   logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
  transport.py                   transport.py-20060406231150-b3472d06b3a0818d
=== modified file 'branchprops.py'
--- a/branchprops.py	2006-12-24 00:25:17 +0000
+++ b/branchprops.py	2006-12-24 22:23:32 +0000
@@ -34,12 +34,12 @@
         assert path != None
         path = path.lstrip("/")
 
-        mutter("svn ls -r %d '%r'" % (revnum, path))
+        mutter("svn ls -r %d '%r' (branchprops)" % (revnum, path))
 
         try:
-            (_, _, props) = self.log.transport.get_dir(
+            (_, _, props) = self.log.transport.get_dir2(
                 path.encode('utf8'), 
-                revnum, self.pool)
+                revnum, 0, self.pool)
         except SubversionException, (msg, num):
             if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION:
                 raise NoSuchRevision(self, revnum)

=== modified file 'logwalker.py'
--- a/logwalker.py	2006-12-24 00:25:17 +0000
+++ b/logwalker.py	2006-12-24 22:23:32 +0000
@@ -20,7 +20,7 @@
 
 import os
 
-from svn.core import SubversionException
+from svn.core import SubversionException, Pool
 from transport import SvnRaTransport
 import svn.core
 
@@ -83,7 +83,7 @@
 
         self.last_revnum = last_revnum
 
-        self.transport = transport.clone()
+        self.transport = SvnRaTransport(transport.get_repos_root())
         self.scheme = scheme
 
         if cache_db is None:
@@ -138,11 +138,12 @@
         else:
             pb = ProgressBar()
 
+        pool = Pool()
         try:
             try:
                 mutter('getting log %r:%r' % (self.saved_revnum, to_revnum))
                 self.transport.get_log(["/"], self.saved_revnum, to_revnum, 
-                               0, True, True, rcvr)
+                               0, True, True, rcvr, pool)
             finally:
                 pb.clear()
         except SubversionException, (_, num):
@@ -151,6 +152,7 @@
                     revision="Revision number %d" % to_revnum)
             raise
         self.db.commit()
+        pool.destroy()
 
     def follow_history(self, branch_path, revnum):
         """Return iterator over all the revisions between revnum and 
@@ -296,11 +298,11 @@
         """Find all children of path in revnum."""
         # TODO: Find children by walking history, or use 
         # cache?
-        mutter("svn ls -r %d '%r'" % (revnum, path))
+        mutter("svn ls -r %d '%r' (logwalker)" % (revnum, path))
 
         try:
-            (dirents, _, _) = self.transport.get_dir(
-                "/" + path.encode('utf8'), revnum)
+            (dirents, _, _) = self.transport.get_dir2(
+                "/" + path.encode('utf8'), revnum, 0)
         except SubversionException, (_, num):
             if num == svn.core.SVN_ERR_FS_NOT_DIRECTORY:
                 return

=== modified file 'transport.py'
--- a/transport.py	2006-12-23 19:54:16 +0000
+++ b/transport.py	2006-12-24 22:23:32 +0000
@@ -173,14 +173,14 @@
             self._ra = svn.client.open_ra_session(self.svn_url.encode('utf8'), 
                     self._client, self.pool)
     @need_lock
-    def get_dir(self, *args, **kwargs):
-        return svn.ra.get_dir(self._ra, *args, **kwargs)
+    def get_dir2(self, *args, **kwargs):
+        return svn.ra.get_dir2(self._ra, *args, **kwargs)
 
     def list_dir(self, relpath):
         if relpath == ".":
             relpath = ""
         try:
-            (dirents, _, _) = self.get_dir(relpath.rstrip("/"), self.get_latest_revnum())
+            (dirents, _, _) = self.get_dir2(relpath.rstrip("/"), self.get_latest_revnum(), 0)
         except SubversionException, (msg, num):
             if num == svn.core.SVN_ERR_FS_NOT_DIRECTORY:
                 raise NoSuchFile(relpath)




More information about the bazaar-commits mailing list