Rev 602: Merge upstream. in file:///data/jelmer/bzr-svn/revprops/

Jelmer Vernooij jelmer at samba.org
Fri Dec 14 16:04:31 GMT 2007


At file:///data/jelmer/bzr-svn/revprops/

------------------------------------------------------------
revno: 602
revision-id:jelmer at samba.org-20071214160431-czsb8xvrc724i1jf
parent: jelmer at samba.org-20071210011844-c0t3vr9uqlnbrf78
parent: jelmer at samba.org-20071214155628-1rfw35a3hgmpcjqf
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: revprops
timestamp: Fri 2007-12-14 17:04:31 +0100
message:
  Merge upstream.
modified:
  FAQ                            faq-20070910195147-p9u38s9wplds2d4o-1
  NEWS                           news-20061231030336-h9fhq245ie0de8bs-1
  logwalker.py                   logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
  transport.py                   transport.py-20060406231150-b3472d06b3a0818d
    ------------------------------------------------------------
    revno: 579.1.229
    revision-id:jelmer at samba.org-20071214155628-1rfw35a3hgmpcjqf
    parent: jelmer at samba.org-20071214141151-f6yoq56zh1k8a4oi
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: 0.4
    timestamp: Fri 2007-12-14 16:56:28 +0100
    message:
      Fix compatibility with Subversion 1.5.
    modified:
      logwalker.py                   logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
      transport.py                   transport.py-20060406231150-b3472d06b3a0818d
    ------------------------------------------------------------
    revno: 579.1.228
    revision-id:jelmer at samba.org-20071214141151-f6yoq56zh1k8a4oi
    parent: jelmer at samba.org-20071214135208-fqnfbtgh2bliurmp
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: 0.4
    timestamp: Fri 2007-12-14 15:11:51 +0100
    message:
      Update FAQ
    modified:
      FAQ                            faq-20070910195147-p9u38s9wplds2d4o-1
    ------------------------------------------------------------
    revno: 579.1.227
    revision-id:jelmer at samba.org-20071214135208-fqnfbtgh2bliurmp
    parent: jelmer at samba.org-20071209224848-8j0c45o59ytw7mlg
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: 0.4
    timestamp: Fri 2007-12-14 14:52:08 +0100
    message:
      Work around memory leak in the python subversion bindings.
    modified:
      NEWS                           news-20061231030336-h9fhq245ie0de8bs-1
      logwalker.py                   logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
=== modified file 'FAQ'
--- a/FAQ	2007-11-28 11:45:57 +0000
+++ b/FAQ	2007-12-14 14:11:51 +0000
@@ -4,8 +4,8 @@
 Bazaar is using a lot of memory accessing a Subversion repository
 =================================================================
 bzr-svn can use a lot of memory cloning big branches. The problem appears to be 
-caused both by a memory leak in the python-subversion bindings or Subversion
-(the svn_ra_get_log() function) and the memory overhead from Bazaar.
+caused mainly by a memory leak in the python-subversion bindings for the svn_ra_get_log() 
+function.
 
 Newer versions of Subversion (1.5 especially) use significantly less memory 
 than older versions (though they still seem to leak).

=== modified file 'NEWS'
--- a/NEWS	2007-12-06 15:54:08 +0000
+++ b/NEWS	2007-12-14 13:52:08 +0000
@@ -6,6 +6,8 @@
      push a lot faster, in particular in Subversion repositories 
 	 with a lot of branches.
 
+   * Work around memory leak in the Python Subversion bindings of svn.ra.get_log(). 
+
 bzr-svn 0.4.5	2007-12-01
 
   IMPROVEMENTS

=== modified file 'logwalker.py'
--- a/logwalker.py	2007-12-09 22:48:48 +0000
+++ b/logwalker.py	2007-12-14 15:56:28 +0000
@@ -95,6 +95,8 @@
                 self.db.execute(
                      "replace into changed_path (rev, path, action, copyfrom_path, copyfrom_rev) values (?, ?, ?, ?, ?)", 
                      (log_entry.revision, p.strip("/"), orig_paths[p].action, copyfrom_path, orig_paths[p].copyfrom_rev))
+                # Work around nasty memory leak in Subversion
+                orig_paths[p]._parent_pool.destroy()
 
             self.saved_revnum = log_entry.revision
             if self.saved_revnum % 1000 == 0:
@@ -104,7 +106,7 @@
             try:
                 while self.saved_revnum < to_revnum:
                     pool = Pool()
-                    self._get_transport().get_log("/", self.saved_revnum, 
+                    self._get_transport().get_log("", self.saved_revnum, 
                                              to_revnum, self._limit, True, 
                                              True, [], rcvr, pool)
                     pool.destroy()

=== modified file 'transport.py'
--- a/transport.py	2007-12-09 23:33:12 +0000
+++ b/transport.py	2007-12-14 16:04:31 +0000
@@ -408,10 +408,10 @@
 
     def _request_path(self, relpath):
         if self._backing_url == self.svn_url:
-            return relpath
+            return relpath.strip("/")
         newrelpath = urlutils.join(
                 urlutils.relative_url(self._backing_url+"/", self.svn_url+"/"),
-                relpath).rstrip("/")
+                relpath).strip("/")
         self.mutter('request path %r -> %r' % (relpath, newrelpath))
         return newrelpath
 




More information about the bazaar-commits mailing list