Rev 3685: Merge 1.6.1rc2 back to trunk. in http://bzr.arbash-meinel.com/branches/bzr/jam-integration

John Arbash Meinel john at arbash-meinel.com
Wed Sep 3 20:56:16 BST 2008


At http://bzr.arbash-meinel.com/branches/bzr/jam-integration

------------------------------------------------------------
revno: 3685
revision-id: john at arbash-meinel.com-20080903195434-rnbmeujc0mrgm7qu
parent: pqm at pqm.ubuntu.com-20080903094659-lkj3i4hd83d35fov
parent: pqm at pqm.ubuntu.com-20080903164846-k1lc4d87315m26uh
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: jam-integration
timestamp: Wed 2008-09-03 14:54:34 -0500
message:
  Merge 1.6.1rc2 back to trunk.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 3606.5.16
    tags: bzr-1.6.1rc2
    revision-id: pqm at pqm.ubuntu.com-20080903164846-k1lc4d87315m26uh
    parent: pqm at pqm.ubuntu.com-20080903161110-6m0lsdj1rzzthfro
    parent: john at arbash-meinel.com-20080903161737-xhd1ft9mj0u6wkns
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: 1.6
    timestamp: Wed 2008-09-03 17:48:46 +0100
    message:
      (jam) Release 1.6.1rc2
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
        ------------------------------------------------------------
        revno: 3606.15.1
        revision-id: john at arbash-meinel.com-20080903161737-xhd1ft9mj0u6wkns
        parent: pqm at pqm.ubuntu.com-20080903161110-6m0lsdj1rzzthfro
        committer: John Arbash Meinel <john at arbash-meinel.com>
        branch nick: 1.6.1rc2
        timestamp: Wed 2008-09-03 11:17:37 -0500
        message:
          Release 1.6.1rc2
        modified:
          NEWS                           NEWS-20050323055033-4e00b5db738777ff
          bzrlib/__init__.py             __init__.py-20050309040759-33e65acf91bbcd5d
    ------------------------------------------------------------
    revno: 3606.5.15
    revision-id: pqm at pqm.ubuntu.com-20080903161110-6m0lsdj1rzzthfro
    parent: pqm at pqm.ubuntu.com-20080829171523-uocf850tnc8xz6qk
    parent: john at arbash-meinel.com-20080903153836-5tzfnxixepoxgxax
    committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
    branch nick: 1.6
    timestamp: Wed 2008-09-03 17:11:10 +0100
    message:
      (jam) Fix bug #264321,
      	fetching between rich-root formats should not use the inter-model
      	fetcher.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
    ------------------------------------------------------------
    revno: 3606.14.1
    revision-id: john at arbash-meinel.com-20080903153836-5tzfnxixepoxgxax
    parent: pqm at pqm.ubuntu.com-20080829171523-uocf850tnc8xz6qk
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: bug_264321
    timestamp: Wed 2008-09-03 10:38:36 -0500
    message:
      Fix bug #264321, properly fetch between non-rich-root formats and rich-root formats.
      
      In my update to include --1.6.1-rich-root as a format, I also found
      there were other formats missing from the InterKnit1And2 fetcher.
      I added them, but incorrectly. The code said it was about subtrees,
      but that was because it was brought in before rich-roots.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-09-03 09:11:20 +0000
+++ b/NEWS	2008-09-03 19:54:34 +0000
@@ -147,6 +147,17 @@
       clients now use this mechanism.  (Neil Martinsen-Burrell)
 
 
+bzr 1.6.1rc2 2008-09-03
+-----------------------
+
+  BUG FIXES:
+
+    * Copying between ``rich-root`` and ``rich-root-pack`` (and vice
+      versa) was accidentally using the inter-model fetcher, instead of
+      recognizing that both were 'rich root' formats.
+      (John Arbash Meinel, #264321)
+
+
 bzr 1.6.1rc1 2008-08-29
 -----------------------
 

=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2008-09-02 03:21:10 +0000
+++ b/bzrlib/repository.py	2008-09-03 19:54:34 +0000
@@ -2916,21 +2916,35 @@
                 RepositoryFormatPackDevelopment1,
                 RepositoryFormatPackDevelopment1Subtree,
                 )
-            nosubtrees = (
-                RepositoryFormatKnit1,
-                RepositoryFormatKnitPack1,
-                RepositoryFormatPackDevelopment1,
-                RepositoryFormatKnitPack4,
-                RepositoryFormatKnitPack5,
-                RepositoryFormatKnitPack5RichRoot,
-                )
-            subtrees = (
-                RepositoryFormatKnit3,
-                RepositoryFormatKnitPack3,
-                RepositoryFormatPackDevelopment1Subtree,
-                )
-            return (isinstance(source._format, nosubtrees) and
-                isinstance(target._format, subtrees))
+            norichroot = (
+                RepositoryFormatKnit1,            # no rr, no subtree
+                RepositoryFormatKnitPack1,        # no rr, no subtree
+                RepositoryFormatPackDevelopment1, # no rr, no subtree
+                RepositoryFormatKnitPack5,        # no rr, no subtree
+                )
+            richroot = (
+                RepositoryFormatKnit3,            # rr, subtree
+                RepositoryFormatKnitPack3,        # rr, subtree
+                RepositoryFormatKnitPack4,        # rr, no subtree
+                RepositoryFormatKnitPack5RichRoot,# rr, no subtree
+                RepositoryFormatPackDevelopment1Subtree, # rr, subtree
+                )
+            for format in norichroot:
+                if format.rich_root_data:
+                    raise AssertionError('Format %s is a rich-root format'
+                        ' but is included in the non-rich-root list'
+                        % (format,))
+            for format in richroot:
+                if not format.rich_root_data:
+                    raise AssertionError('Format %s is not a rich-root format'
+                        ' but is included in the rich-root list'
+                        % (format,))
+            # TODO: One alternative is to just check format.rich_root_data,
+            #       instead of keeping membership lists. However, the formats
+            #       *also* have to use the same 'Knit' style of storage
+            #       (line-deltas, fulltexts, etc.)
+            return (isinstance(source._format, norichroot) and
+                    isinstance(target._format, richroot))
         except AttributeError:
             return False
 



More information about the bazaar-commits mailing list