/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: Martin Pool
  • Date: 2008-05-08 04:33:38 UTC
  • mfrom: (3414 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3415.
  • Revision ID: mbp@sourcefrog.net-20080508043338-ru3vflx8z641a76k
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
842
842
                            'on the source repository, and "bzr reconcile" '
843
843
                            'if necessary.' %
844
844
                            (version_id, parents[0]))
 
845
                    if not self.delta:
 
846
                        # We received a line-delta record for a non-delta knit.
 
847
                        # Convert it to a fulltext.
 
848
                        gzip_bytes = reader_callable(length)
 
849
                        self._convert_line_delta_to_fulltext(
 
850
                            gzip_bytes, version_id, parents)
 
851
                        continue
 
852
 
845
853
                self._add_raw_records(
846
854
                    [(version_id, options, parents, length)],
847
855
                    reader_callable(length))
848
856
 
 
857
    def _convert_line_delta_to_fulltext(self, gzip_bytes, version_id, parents):
 
858
        lines, sha1 = self._data._parse_record(version_id, gzip_bytes)
 
859
        delta = self.factory.parse_line_delta(lines, version_id)
 
860
        content = self.factory.make(self.get_lines(parents[0]), parents[0])
 
861
        content.apply_delta(delta, version_id)
 
862
        digest, len, content = self.add_lines(
 
863
            version_id, parents, content.text())
 
864
        if digest != sha1:
 
865
            raise errors.VersionedFileInvalidChecksum(version_id)
 
866
 
849
867
    def _knit_from_datastream(self, (format, data_list, reader_callable)):
850
868
        """Create a knit object from a data stream.
851
869