Rev 2704: Change from using Transport.append to Transport file_streams for pack creation, saving 25bzrlib/repofmt/knitrepo.py of the time on a regular pull operation. in http://people.ubuntu.com/~robertc/baz2.0/repository

Robert Collins robertc at robertcollins.net
Sun Aug 5 09:29:36 BST 2007


At http://people.ubuntu.com/~robertc/baz2.0/repository

------------------------------------------------------------
revno: 2704
revision-id: robertc at robertcollins.net-20070805082934-uwqwq6nqew47ugcy
parent: robertc at robertcollins.net-20070805082029-4q3fj1fc7yn08yfh
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Sun 2007-08-05 18:29:34 +1000
message:
  Change from using Transport.append to Transport file_streams for pack creation, saving 25bzrlib/repofmt/knitrepo.py of the time on a regular pull operation.
modified:
  bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
=== modified file 'bzrlib/repofmt/knitrepo.py'
--- a/bzrlib/repofmt/knitrepo.py	2007-08-03 03:49:33 +0000
+++ b/bzrlib/repofmt/knitrepo.py	2007-08-05 08:29:34 +0000
@@ -775,9 +775,8 @@
     def _start_write_group(self):
         random_name = self.control_files._lock.nonce
         self._open_pack_tuple = (self._upload_transport, random_name + '.pack')
-        def write_data(bytes):
-            self._upload_transport.append_bytes(random_name + '.pack', bytes)
-        self._open_pack_writer = pack.ContainerWriter(write_data)
+        write_stream = self._upload_transport.open_file_stream(random_name + '.pack')
+        self._open_pack_writer = pack.ContainerWriter(write_stream)
         self._open_pack_writer.begin()
         self._data_names.setup()
         self._revision_store.setup()
@@ -793,6 +792,8 @@
             self.weave_store.flush(new_name)
             self._inv_thunk.flush(new_name)
             self._revision_store.flush(new_name)
+            self._open_pack_writer.end()
+            self._upload_transport.close_file_stream(self._open_pack_tuple[1])
             self._upload_transport.rename(self._open_pack_tuple[1],
                 '../packs/' + new_name + '.pack')
             self._data_names.save()



More information about the bazaar-commits mailing list