Rev 2754: Move some more bits that seem to belong in RepositoryPackCollection into there in http://sourcefrog.net/bzr/pack-repository
Martin Pool
mbp at sourcefrog.net
Thu Sep 20 09:04:59 BST 2007
At http://sourcefrog.net/bzr/pack-repository
------------------------------------------------------------
revno: 2754
revision-id: mbp at sourcefrog.net-20070920080458-fhr70d0gbnd82fio
parent: mbp at sourcefrog.net-20070920074323-xm81gimzuqqi0ogt
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: pack-repository
timestamp: Thu 2007-09-20 18:04:58 +1000
message:
Move some more bits that seem to belong in RepositoryPackCollection into there
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-20 07:43:23 +0000
+++ b/bzrlib/repofmt/pack_repo.py 2007-09-20 08:04:58 +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._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.setup()
+ self.repo._revision_store.setup()
+ self.repo.weave_store.setup()
+ self.repo._inv_thunk.setup()
+
def _abort_write_group(self):
# FIXME: just drop the transient index.
self.repo._revision_store.reset()
@@ -824,15 +841,15 @@
self.repo._inv_thunk.reset()
# forget what names there are
self.reset()
- self.repo._open_pack_hash = None
+ self._open_pack_hash = None
def _commit_write_group(self):
data_inserted = (self.repo._revision_store.data_inserted() or
self.repo.weave_store.data_inserted() or
self.repo._inv_thunk.data_inserted())
if data_inserted:
- self.repo._open_pack_writer.end()
- new_name = self.repo._open_pack_hash.hexdigest()
+ self._open_pack_writer.end()
+ new_name = self._open_pack_hash.hexdigest()
new_pack = Pack()
new_pack.name = new_name
new_pack.transport = self.repo._upload_transport.clone('../packs/')
@@ -844,7 +861,7 @@
self.repo.weave_store.flush(new_name, new_pack)
self.repo._inv_thunk.flush(new_name, new_pack)
self.repo._revision_store.flush(new_name, new_pack)
- self.repo._write_stream.close()
+ self._write_stream.close()
self.repo._upload_transport.rename(self.repo._open_pack_tuple[1],
'../packs/' + new_name + '.pack')
# If this fails, its a hash collision. We should:
@@ -868,25 +885,8 @@
# forget what names there are - should just refresh and deal with the
# delta.
self.reset()
- self.repo._open_pack_hash = None
- self.repo._write_stream = None
-
- 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()
+ self._open_pack_hash = None
+ self._write_stream = None
class GraphKnitRevisionStore(KnitRevisionStore):
@@ -925,7 +925,7 @@
# allow writing: queue writes to a new index
indices.insert(0, self.repo._revision_write_index)
pack_map[self.repo._revision_write_index] = self.repo._open_pack_tuple
- writer = self.repo._open_pack_writer, self.repo._revision_write_index
+ writer = self.repo._packs._open_pack_writer, self.repo._revision_write_index
add_callback = self.repo._revision_write_index.add_nodes
else:
writer = None
@@ -961,7 +961,7 @@
# allow writing: queue writes to a new index
indices.insert(0, self.repo._signature_write_index)
pack_map[self.repo._signature_write_index] = self.repo._open_pack_tuple
- writer = self.repo._open_pack_writer, self.repo._signature_write_index
+ writer = self.repo._packs._open_pack_writer, self.repo._signature_write_index
add_callback = self.repo._signature_write_index.add_nodes
else:
writer = None
@@ -1057,12 +1057,14 @@
if self.repo._revision_knit is not None:
self.repo._revision_all_indices.insert_index(0, self.repo._revision_write_index)
self.repo._revision_knit._index._add_callback = self.repo._revision_write_index.add_nodes
- self.repo._revision_knit_access.set_writer(self.repo._open_pack_writer,
+ self.repo._revision_knit_access.set_writer(
+ self.repo._packs._open_pack_writer,
self.repo._revision_write_index, self.repo._open_pack_tuple)
if self.repo._signature_knit is not None:
self.repo._signature_all_indices.insert_index(0, self.repo._signature_write_index)
self.repo._signature_knit._index._add_callback = self.repo._signature_write_index.add_nodes
- self.repo._signature_knit_access.set_writer(self.repo._open_pack_writer,
+ self.repo._signature_knit_access.set_writer(
+ self.repo._packs._open_pack_writer,
self.repo._signature_write_index, self.repo._open_pack_tuple)
@@ -1204,7 +1206,7 @@
def _setup_knit(self, for_write):
if for_write:
- writer = (self.repo._open_pack_writer, self.repo._text_write_index)
+ writer = (self.repo._packs._open_pack_writer, self.repo._text_write_index)
else:
writer = None
self.repo._text_knit_access = _PackAccess(
@@ -1281,7 +1283,7 @@
if self.repo.is_in_write_group():
add_callback = self.repo._inv_write_index.add_nodes
self.repo._inv_pack_map[self.repo._inv_write_index] = self.repo._open_pack_tuple
- writer = self.repo._open_pack_writer, self.repo._inv_write_index
+ writer = self.repo._packs._open_pack_writer, self.repo._inv_write_index
else:
add_callback = None # no data-adding permitted.
writer = None
More information about the bazaar-commits
mailing list