Rev 3901: We now support generating a network stream. in http://bzr.arbash-meinel.com/branches/bzr/brisbane/lazy_gc_stream
John Arbash Meinel
john at arbash-meinel.com
Tue Mar 17 05:11:42 GMT 2009
At http://bzr.arbash-meinel.com/branches/bzr/brisbane/lazy_gc_stream
------------------------------------------------------------
revno: 3901
revision-id: john at arbash-meinel.com-20090317051139-6za5bo6i7atmpvqr
parent: john at arbash-meinel.com-20090317050040-q5np851qcvbwma52
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: lazy_gc_stream
timestamp: Tue 2009-03-17 00:11:39 -0500
message:
We now support generating a network stream.
It can then be read back in on the other end. Though we don't support
*inserting* the byte-stream directly yet.
-------------- next part --------------
=== modified file 'bzrlib/groupcompress.py'
--- a/bzrlib/groupcompress.py 2009-03-17 05:00:40 +0000
+++ b/bzrlib/groupcompress.py 2009-03-17 05:11:39 +0000
@@ -600,7 +600,7 @@
return ''.join(lines)
@classmethod
- def from_bytes(cls, bytes, line_end):
+ def from_bytes(cls, bytes):
# TODO: This does extra string copying, probably better to do it a
# different way
(storage_kind, z_header_len, header_len,
@@ -651,6 +651,13 @@
return result
+def network_block_to_records(storage_kind, bytes, line_end):
+ if storage_kind != 'groupcompress-block':
+ raise ValueError('Unknown storage kind: %s' % (storage_kind,))
+ manager = _LazyGroupContentManager.from_bytes(bytes)
+ return manager.get_record_stream()
+
+
class GroupCompressor(object):
"""Produce a serialised group of compressed texts.
=== modified file 'bzrlib/tests/test_groupcompress.py'
--- a/bzrlib/tests/test_groupcompress.py 2009-03-17 05:00:40 +0000
+++ b/bzrlib/tests/test_groupcompress.py 2009-03-17 05:11:39 +0000
@@ -583,8 +583,7 @@
self.add_key_to_manager(('key4',), entries, block, manager)
wire_bytes = manager._wire_bytes()
self.assertStartsWith(wire_bytes, 'groupcompress-block\n')
- manager = groupcompress._LazyGroupContentManager.from_bytes(wire_bytes,
- wire_bytes.index('\n')+1)
+ manager = groupcompress._LazyGroupContentManager.from_bytes(wire_bytes)
self.assertIsInstance(manager, groupcompress._LazyGroupContentManager)
self.assertEqual(2, len(manager._factories))
self.assertEqual(block._z_content, manager._block._z_content)
=== modified file 'bzrlib/versionedfile.py'
--- a/bzrlib/versionedfile.py 2009-03-12 08:02:02 +0000
+++ b/bzrlib/versionedfile.py 2009-03-17 05:11:39 +0000
@@ -31,6 +31,7 @@
from bzrlib import (
errors,
+ groupcompress,
index,
knit,
osutils,
@@ -1518,6 +1519,7 @@
'knit-annotated-delta-gz':knit.knit_network_to_record,
'knit-delta-closure':knit.knit_delta_closure_to_records,
'fulltext':fulltext_network_to_record,
+ 'groupcompress-block':groupcompress.network_block_to_records,
}
def read(self):
More information about the bazaar-commits
mailing list