/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/knit.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-04-28 08:33:17 UTC
  • mfrom: (3370.1.10 bug-217701)
  • Revision ID: pqm@pqm.ubuntu.com-20080428083317-x033hd0yn73mqaj7
Merge final tweak of fix for error about "attempt to add line-delta
        in non-delta knit". (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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,
853
 
                                version_id)
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())
859
 
                        if digest != sha1:
860
 
                            raise errors.VersionedFileInvalidChecksum(version)
 
850
                        self._convert_line_delta_to_fulltext(
 
851
                            gzip_bytes, version_id, parents)
861
852
                        continue
862
853
 
863
854
                self._add_raw_records(
864
855
                    [(version_id, options, parents, length)],
865
856
                    reader_callable(length))
866
857
 
 
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())
 
865
        if digest != sha1:
 
866
            raise errors.VersionedFileInvalidChecksum(version_id)
 
867
 
867
868
    def _knit_from_datastream(self, (format, data_list, reader_callable)):
868
869
        """Create a knit object from a data stream.
869
870