Rev 3386: Merge final tweak of fix for error about "attempt to add line-delta in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Apr 28 09:33:26 BST 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3386
revision-id:pqm at pqm.ubuntu.com-20080428083317-x033hd0yn73mqaj7
parent: pqm at pqm.ubuntu.com-20080428055446-p0m8jwv1jzegn933
parent: andrew.bennetts at canonical.com-20080428062416-f7niegy7ekq4oftx
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2008-04-28 09:33:17 +0100
message:
  Merge final tweak of fix for error about "attempt to add line-delta
  	in non-delta knit". (Andrew Bennetts)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
    ------------------------------------------------------------
    revno: 3370.1.10
    revision-id:andrew.bennetts at canonical.com-20080428062416-f7niegy7ekq4oftx
    parent: andrew.bennetts at canonical.com-20080428055807-qfx4kdbgl3tg2zng
    parent: pqm at pqm.ubuntu.com-20080428055446-p0m8jwv1jzegn933
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Mon 2008-04-28 16:24:16 +1000
    message:
      Merge from bzr.dev.
    modified:
      Makefile                       Makefile-20050805140406-d96e3498bb61c5bb
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzr                            bzr.py-20050313053754-5485f144c7006fa6
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/tests/blackbox/test_version.py test_version.py-20070312060045-ol7th9z035r3im3d-1
      bzrlib/tests/test_store.py     teststore.py-20050826022702-f6caadb647395769
      doc/developers/HACKING.txt     HACKING-20050805200004-2a5dc975d870f78c
    ------------------------------------------------------------
    revno: 3370.1.9
    revision-id:andrew.bennetts at canonical.com-20080428055807-qfx4kdbgl3tg2zng
    parent: andrew.bennetts at canonical.com-20080428055606-gu9izdt55qe9t7gn
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Mon 2008-04-28 15:58:07 +1000
    message:
      Add NEWS entry.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
    ------------------------------------------------------------
    revno: 3370.1.8
    revision-id:andrew.bennetts at canonical.com-20080428055606-gu9izdt55qe9t7gn
    parent: andrew.bennetts at canonical.com-20080428054637-w1t3l02zixduk0fr
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Mon 2008-04-28 15:56:06 +1000
    message:
      Extract a _convert_line_delta_to_fulltext helper.
    modified:
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
    ------------------------------------------------------------
    revno: 3370.1.7
    revision-id:andrew.bennetts at canonical.com-20080428054637-w1t3l02zixduk0fr
    parent: andrew.bennetts at canonical.com-20080418064515-wnqz648mpegu5x60
    parent: pqm at pqm.ubuntu.com-20080428032913-4fgik9du2kpxl8sf
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Mon 2008-04-28 15:46:37 +1000
    message:
      Merge bzr.dev.
    removed:
      bzrlib/xml6.py                 xml6.py-20060823042456-dbaaq4atrche7xy5-1
    added:
      bzrlib/xml5.py                 xml5.py-20080328030717-t9guwinq8hom0ar3-1
      bzrlib/xml6.py                 xml6.py-20080327235607-1skmbg4o9cd1o636-1
    renamed:
      bzrlib/xml5.py => bzrlib/xml8.py xml5.py-20050907032657-aac8f960815b66b1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/diff.py                 diff.py-20050309040759-26944fbbf2ebbf36
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/fetch.py                fetch.py-20050818234941-26fea6105696365d
      bzrlib/help_topics/__init__.py help_topics.py-20060920210027-rnim90q9e0bwxvy4-1
      bzrlib/log.py                  log.py-20050505065812-c40ce11702fe5fb1
      bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
      bzrlib/plugins/launchpad/lp_directory.py lp_indirect.py-20070126012204-de5rugwlt22c7u7e-1
      bzrlib/reconfigure.py          reconfigure.py-20070908040425-6ykgo7escxhyrg9p-1
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/smart/repository.py     repository.py-20061128022038-vr5wy5bubyb8xttk-1
      bzrlib/smart/server.py         server.py-20061110062051-chzu10y32vx8gvur-1
      bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
      bzrlib/tests/intertree_implementations/__init__.py __init__.py-20060724101752-09ysswo1a92uqyoz-3
      bzrlib/tests/repository_implementations/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
      bzrlib/tests/repository_implementations/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
      bzrlib/tests/test_log.py       testlog.py-20050728115707-1a514809d7d49309
      bzrlib/tests/test_reconfigure.py test_reconfigure.py-20070908040425-6ykgo7escxhyrg9p-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_selftest.py  test_selftest.py-20051202044319-c110a115d8c0456a
      bzrlib/tests/test_xml.py       test_xml.py-20050905091053-80b45588931a9b35
      bzrlib/tests/tree_implementations/__init__.py __init__.py-20060717075546-420s7b0bj9hzeowi-2
      bzrlib/tests/workingtree_implementations/__init__.py __init__.py-20060203003124-b2aa5aca21a8bfad
      bzrlib/transport/ftp.py        ftp.py-20051116161804-58dc9506548c2a53
      bzrlib/xml_serializer.py       xml.py-20050309040759-57d51586fdec365d
      doc/en/user-guide/controlling_registration.txt controlling_registra-20071121073725-0corxykv5irjal00-3
      doc/en/user-guide/sending_changes.txt sending_changes.txt-20071123154453-dk2mjhrg1vpjm5w2-4
      bzrlib/xml8.py                 xml5.py-20050907032657-aac8f960815b66b1
    ------------------------------------------------------------
    revno: 3370.1.6
    revision-id:andrew.bennetts at canonical.com-20080418064515-wnqz648mpegu5x60
    parent: andrew.bennetts at canonical.com-20080418064431-23iqugpuy08jb20m
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 16:45:15 +1000
    message:
      Add test for line-deltas inserted into a non-delta knit.
    modified:
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
    ------------------------------------------------------------
    revno: 3370.1.5
    revision-id:andrew.bennetts at canonical.com-20080418064431-23iqugpuy08jb20m
    parent: andrew.bennetts at canonical.com-20080418063545-y3qafi033t4c6gfg
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 16:44:31 +1000
    message:
      Rename test methods to be a little clearer after reorganisation.
    modified:
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
    ------------------------------------------------------------
    revno: 3370.1.4
    revision-id:andrew.bennetts at canonical.com-20080418063545-y3qafi033t4c6gfg
    parent: andrew.bennetts at canonical.com-20080418061729-wpw12iplmar8ot8s
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 16:35:45 +1000
    message:
      Organise data stream tests in test_knit slightly better.
    modified:
      bzrlib/tests/test_knit.py      test_knit.py-20051212171302-95d4c00dd5f11f2b
    ------------------------------------------------------------
    revno: 3370.1.3
    revision-id:andrew.bennetts at canonical.com-20080418061729-wpw12iplmar8ot8s
    parent: andrew.bennetts at canonical.com-20080418060508-cy5uqu8gn4e62qki
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 16:17:29 +1000
    message:
      Add a comment.
    modified:
      bzrlib/store/revision/knit.py  knit.py-20060303020652-de5fa299e941a3c7
    ------------------------------------------------------------
    revno: 3370.1.2
    revision-id:andrew.bennetts at canonical.com-20080418060508-cy5uqu8gn4e62qki
    parent: andrew.bennetts at canonical.com-20080418021607-1fwitfz49w32vjmo
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 16:05:08 +1000
    message:
      Always ensure that 'revisions' versioned file in a knit store is non-delta.
    modified:
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
      bzrlib/store/revision/knit.py  knit.py-20060303020652-de5fa299e941a3c7
    ------------------------------------------------------------
    revno: 3370.1.1
    revision-id:andrew.bennetts at canonical.com-20080418021607-1fwitfz49w32vjmo
    parent: pqm at pqm.ubuntu.com-20080416172809-mq3p3rm6q3vefyyz
    committer: Andrew Bennetts <andrew.bennetts at canonical.com>
    branch nick: bug-217701
    timestamp: Fri 2008-04-18 12:16:07 +1000
    message:
      Tentative fix for 217701.
    modified:
      bzrlib/knit.py                 knit.py-20051212171256-f056ac8f0fbe1bd9
      bzrlib/repofmt/knitrepo.py     knitrepo.py-20070206081537-pyy4a00xdas0j4pf-1
=== modified file 'NEWS'
--- a/NEWS	2008-04-28 05:54:46 +0000
+++ b/NEWS	2008-04-28 06:24:16 +0000
@@ -35,6 +35,9 @@
     * Fetching all revisions from a repository does not cause pack collisions.
       (Robert Collins, Aaron Bentley, #212908)
 
+    * Fix error about "attempt to add line-delta in non-delta knit".
+      (Andrew Bennetts, #217701)
+
     * Set SO_REUSEADDR on server sockets of ``bzr serve`` to avoid problems
       rebinding the socket when starting the server a second time.
       (John Arbash Meinel, Martin Pool, #164288)

=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py	2008-04-21 06:42:45 +0000
+++ b/bzrlib/knit.py	2008-04-28 06:24:16 +0000
@@ -847,23 +847,24 @@
                         # We received a line-delta record for a non-delta knit.
                         # Convert it to a fulltext.
                         gzip_bytes = reader_callable(length)
-                        lines, sha1 = self._data._parse_record(
-                            version_id, gzip_bytes)
-                        delta = self.factory.parse_line_delta(lines,
-                                version_id)
-                        content = self.factory.make(
-                            self.get_lines(parents[0]), parents[0])
-                        content.apply_delta(delta, version_id)
-                        digest, len, content = self.add_lines(
-                            version_id, parents, content.text())
-                        if digest != sha1:
-                            raise errors.VersionedFileInvalidChecksum(version)
+                        self._convert_line_delta_to_fulltext(
+                            gzip_bytes, version_id, parents)
                         continue
 
                 self._add_raw_records(
                     [(version_id, options, parents, length)],
                     reader_callable(length))
 
+    def _convert_line_delta_to_fulltext(self, gzip_bytes, version_id, parents):
+        lines, sha1 = self._data._parse_record(version_id, gzip_bytes)
+        delta = self.factory.parse_line_delta(lines, version_id)
+        content = self.factory.make(self.get_lines(parents[0]), parents[0])
+        content.apply_delta(delta, version_id)
+        digest, len, content = self.add_lines(
+            version_id, parents, content.text())
+        if digest != sha1:
+            raise errors.VersionedFileInvalidChecksum(version_id)
+
     def _knit_from_datastream(self, (format, data_list, reader_callable)):
         """Create a knit object from a data stream.
 




More information about the bazaar-commits mailing list