Rev 2751: Move pack repository start_write_group to pack collection object in http://sourcefrog.net/bzr/pack-repository

Martin Pool mbp at sourcefrog.net
Wed Sep 19 06:12:54 BST 2007


At http://sourcefrog.net/bzr/pack-repository

------------------------------------------------------------
revno: 2751
revision-id: mbp at sourcefrog.net-20070919051252-trwq0anc4rqzf6pr
parent: mbp at sourcefrog.net-20070919042142-6816rhjjc6apvrii
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: pack-repository
timestamp: Wed 2007-09-19 15:12:52 +1000
message:
  Move pack repository start_write_group to pack collection object
modified:
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2007-09-19 04:21:42 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2007-09-19 05:12:52 +0000
@@ -817,6 +817,23 @@
         if self.repo.control_files._lock_mode != 'w':
             raise errors.NotWriteLocked(self)
 
+    def _start_write_group(self):
+        random_name = self.repo.control_files._lock.nonce
+        self.repo._open_pack_tuple = (self.repo._upload_transport, random_name + '.pack')
+        write_stream = self.repo._upload_transport.open_write_stream(random_name + '.pack')
+        self.repo._write_stream = write_stream
+        self.repo._open_pack_hash = md5.new()
+        def write_data(bytes, write=write_stream.write,
+                       update=self.repo._open_pack_hash.update):
+            write(bytes)
+            update(bytes)
+        self.repo._open_pack_writer = pack.ContainerWriter(write_data)
+        self.repo._open_pack_writer.begin()
+        self.setup()
+        self.repo._revision_store.setup()
+        self.repo.weave_store.setup()
+        self.repo._inv_thunk.setup()
+
 
 class GraphKnitRevisionStore(KnitRevisionStore):
     """An object to adapt access from RevisionStore's to use GraphKnits.
@@ -1264,7 +1281,6 @@
         KnitRepository.__init__(self, _format, a_bzrdir, control_files,
                               _revision_store, control_store, text_store)
         index_transport = control_files._transport.clone('indices')
-        self._index_transport = index_transport
         self._packs = RepositoryPackCollection(self, control_files._transport,
                 index_transport)
         self._revision_store = GraphKnitRevisionStore(self, index_transport, self._revision_store)
@@ -1297,20 +1313,7 @@
             self._packs.reset()
 
     def _start_write_group(self):
-        random_name = self.control_files._lock.nonce
-        self._open_pack_tuple = (self._upload_transport, random_name + '.pack')
-        write_stream = self._upload_transport.open_write_stream(random_name + '.pack')
-        self._write_stream = write_stream
-        self._open_pack_hash = md5.new()
-        def write_data(bytes, write=write_stream.write, update=self._open_pack_hash.update):
-            write(bytes)
-            update(bytes)
-        self._open_pack_writer = pack.ContainerWriter(write_data)
-        self._open_pack_writer.begin()
-        self._packs.setup()
-        self._revision_store.setup()
-        self.weave_store.setup()
-        self._inv_thunk.setup()
+        self._packs._start_write_group()
 
     def _commit_write_group(self):
         data_inserted = (self._revision_store.data_inserted() or
@@ -1397,7 +1400,6 @@
         KnitRepository3.__init__(self, _format, a_bzrdir, control_files,
                               _revision_store, control_store, text_store)
         index_transport = control_files._transport.clone('indices')
-        self._index_transport = index_transport
         self._packs = RepositoryPackCollection(self, control_files._transport,
             index_transport)
         self._revision_store = GraphKnitRevisionStore(self, index_transport, self._revision_store)
@@ -1430,20 +1432,7 @@
             self._packs.reset()
 
     def _start_write_group(self):
-        random_name = self.control_files._lock.nonce
-        self._open_pack_tuple = (self._upload_transport, random_name + '.pack')
-        write_stream = self._upload_transport.open_write_stream(random_name + '.pack')
-        self._write_stream = write_stream
-        self._open_pack_hash = md5.new()
-        def write_data(bytes, write=write_stream.write, update=self._open_pack_hash.update):
-            write(bytes)
-            update(bytes)
-        self._open_pack_writer = pack.ContainerWriter(write_data)
-        self._open_pack_writer.begin()
-        self._packs.setup()
-        self._revision_store.setup()
-        self.weave_store.setup()
-        self._inv_thunk.setup()
+        self._packs._start_write_group()
 
     def _commit_write_group(self):
         data_inserted = (self._revision_store.data_inserted() or




More information about the bazaar-commits mailing list