Rev 2912: Knits need to be rebuilt if they are a different data version. in http://bzr.arbash-meinel.com/branches/bzr/0.92-dev/knit_parents

John Arbash Meinel john at arbash-meinel.com
Fri Oct 26 22:57:55 BST 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.92-dev/knit_parents

------------------------------------------------------------
revno: 2912
revision-id:john at arbash-meinel.com-20071026215719-zzjyosi3xbgpdh84
parent: john at arbash-meinel.com-20071026214502-andvxbgaxe3pnw70
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: knit_parents
timestamp: Fri 2007-10-26 16:57:19 -0500
message:
  Knits need to be rebuilt if they are a different data version.
modified:
  bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
-------------- next part --------------
=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py	2007-10-26 21:48:19 +0000
+++ b/bzrlib/knit.py	2007-10-26 21:57:19 +0000
@@ -2393,10 +2393,12 @@
 
         # If the source and target are mismatched w.r.t. annotations vs
         # plain, the data needs to be converted accordingly
-        if self.source.factory.annotated == self.target.factory.annotated:
+        if self.source._data.__class__ != self.target._data.__class__:
+            converter = self._rebuild_converter
+        elif self.source.factory.annotated == self.target.factory.annotated:
             converter = None
         elif self.source.factory.annotated:
-            converter = self._anno_to_plain_converter
+            converter = self._rebuild_converter
         else:
             # We're converting from a plain to an annotated knit. This requires
             # building the annotations from scratch. The generic join code
@@ -2474,9 +2476,8 @@
         finally:
             pb.finished()
 
-    def _anno_to_plain_converter(self, raw_data, version_id, options,
-                                 parents):
-        """Convert annotated content to plain content."""
+    def _rebuild_converter(self, raw_data, version_id, options, parents):
+        """Convert content by extracting it and storing it again."""
         data, digest = self.source._data._parse_record(version_id, raw_data)
         if 'fulltext' in options:
             content = self.source.factory.parse_fulltext(data, version_id)



More information about the bazaar-commits mailing list