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