847
847
# We received a line-delta record for a non-delta knit.
848
848
# Convert it to a fulltext.
849
849
gzip_bytes = reader_callable(length)
850
lines, sha1 = self._data._parse_record(
851
version_id, gzip_bytes)
852
delta = self.factory.parse_line_delta(lines,
854
content = self.factory.make(
855
self.get_lines(parents[0]), parents[0])
856
content.apply_delta(delta, version_id)
857
digest, len, content = self.add_lines(
858
version_id, parents, content.text())
860
raise errors.VersionedFileInvalidChecksum(version)
850
self._convert_line_delta_to_fulltext(
851
gzip_bytes, version_id, parents)
863
854
self._add_raw_records(
864
855
[(version_id, options, parents, length)],
865
856
reader_callable(length))
858
def _convert_line_delta_to_fulltext(self, gzip_bytes, version_id, parents):
859
lines, sha1 = self._data._parse_record(version_id, gzip_bytes)
860
delta = self.factory.parse_line_delta(lines, version_id)
861
content = self.factory.make(self.get_lines(parents[0]), parents[0])
862
content.apply_delta(delta, version_id)
863
digest, len, content = self.add_lines(
864
version_id, parents, content.text())
866
raise errors.VersionedFileInvalidChecksum(version_id)
867
868
def _knit_from_datastream(self, (format, data_list, reader_callable)):
868
869
"""Create a knit object from a data stream.