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