Rev 3026: Introduce rich-root-pack format in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Nov 26 15:13:34 GMT 2007


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

------------------------------------------------------------
revno: 3026
revision-id:pqm at pqm.ubuntu.com-20071126151329-pnmm49obwettpwcd
parent: pqm at pqm.ubuntu.com-20071126122043-diwafrw3fnoz6rxm
parent: abentley at panoramicfeedback.com-20071126135551-rbft9vn1pypb44rd
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2007-11-26 15:13:29 +0000
message:
  Introduce rich-root-pack format
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
  bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
  bzrlib/tests/test_info.py      test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
    ------------------------------------------------------------
    revno: 2996.2.13
    revision-id:abentley at panoramicfeedback.com-20071126135551-rbft9vn1pypb44rd
    parent: aaron.bentley at utoronto.ca-20071126130338-lwyehegchcuyfptr
    parent: pqm at pqm.ubuntu.com-20071126122043-diwafrw3fnoz6rxm
    committer: Aaron Bentley <abentley at panoramicfeedback.com>
    branch nick: rich-root
    timestamp: Mon 2007-11-26 08:55:51 -0500
    message:
      Merge bzr.dev
    renamed:
      doc/developers/knitpack.txt => doc/developers/packrepo.txt knitpack.txt-20071023074744-q0g5u8me8gk5zbtb-1
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/config.py               config.py-20051011043216-070c74f4e9e338e8
      bzrlib/conflicts.py            conflicts.py-20051001061850-78ef952ba63d2b42
      bzrlib/errors.py               errors.py-20050309040759-20512168c4e14fbd
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/smart/medium.py         medium.py-20061103051856-rgu2huy59fkz902q-1
      bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
      bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
      bzrlib/tests/ftp_server.py     ftpserver.py-20071019102346-61jbvdkrr70igauv-1
      bzrlib/tests/test_config.py    testconfig.py-20051011041908-742d0c15d8d8c8eb
      bzrlib/tests/test_conflicts.py test_conflicts.py-20051006031059-e2dad9bbeaa5891f
      bzrlib/tests/test_errors.py    test_errors.py-20060210110251-41aba2deddf936a8
      bzrlib/tests/test_info.py      test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/tests/test_transform.py test_transaction.py-20060105172520-b3ffb3946550e6c4
      bzrlib/tests/test_transport.py testtransport.py-20050718175618-e5cdb99f4555ddce
      bzrlib/tests/test_transport_implementations.py test_transport_implementations.py-20051227111451-f97c5c7d5c49fce7
      bzrlib/tests/test_workingtree.py testworkingtree.py-20051004024258-b88d0fe8f101d468
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/__init__.py   transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/transport/ftp.py        ftp.py-20051116161804-58dc9506548c2a53
      bzrlib/transport/memory.py     memory.py-20051016101338-cd008dbdf69f04fc
      bzrlib/transport/remote.py     ssh.py-20060608202016-c25gvf1ob7ypbus6-1
      bzrlib/util/configobj/configobj.py configobj.py-20051018184548-06992a2246425e3e
      bzrlib/util/configobj/docs/BSD-LICENSE.txt BSDLICENSE.txt-20051018184548-29b89ff3102657f5
      bzrlib/util/configobj/docs/configobj.txt configobj.txt-20051018184548-4949b5f17e6a19c7
      bzrlib/util/configobj/docs/validate.txt validate.txt-20051018184548-9e0e5ad913e258f5
      bzrlib/workingtree.py          workingtree.py-20050511021032-29b6ec0a681e02e3
      doc/developers/packrepo.txt    knitpack.txt-20071023074744-q0g5u8me8gk5zbtb-1
    ------------------------------------------------------------
    revno: 2996.2.12
    revision-id:aaron.bentley at utoronto.ca-20071126130338-lwyehegchcuyfptr
    parent: aaron.bentley at utoronto.ca-20071125175455-3zoctrg96t1hmt1s
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: rich-root
    timestamp: Mon 2007-11-26 08:03:38 -0500
    message:
      Text fixes from review
    modified:
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 2996.2.11
    revision-id:aaron.bentley at utoronto.ca-20071125175455-3zoctrg96t1hmt1s
    parent: aaron.bentley at utoronto.ca-20071124050415-6t29hb6zbe3aswm2
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: rich-root
    timestamp: Sun 2007-11-25 12:54:55 -0500
    message:
      Implement rich-root-pack format ( #164639)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/bzrdir.py               bzrdir.py-20060131065624-156dfea39c4387cb
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
      bzrlib/tests/test_info.py      test_info.py-20070320150933-m0xxm1g7xi9v6noe-1
    ------------------------------------------------------------
    revno: 2996.2.10
    revision-id:aaron.bentley at utoronto.ca-20071124050415-6t29hb6zbe3aswm2
    parent: aaron.bentley at utoronto.ca-20071122032911-e8p1v3tu3o11mdm1
    parent: pqm at pqm.ubuntu.com-20071123043953-lv68pawzrpa4s9t9
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: rich-root
    timestamp: Sat 2007-11-24 00:04:15 -0500
    message:
      Merge bzr.dev
    added:
      bzrlib/switch.py               switch.py-20071116011000-v5lnw7d2wkng9eux-1
      bzrlib/tests/blackbox/test_switch.py test_switch.py-20071122111948-0c5en6uz92bwl76h-1
      bzrlib/tests/repository_implementations/test__generate_text_key_index.py test__generate_text_-20071114232121-00h9fd8qg8kjfa5k-1
      bzrlib/tests/repository_implementations/test_find_text_key_references.py test_find_text_key_r-20071114033605-v73bakal8x77qlfi-1
      bzrlib/tests/test_switch.py    test_switch.py-20071116011000-v5lnw7d2wkng9eux-2
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/annotate.py             annotate.py-20050922133147-7c60541d2614f022
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/check.py                check.py-20050309040759-f3a679400c06bcc1
      bzrlib/graph.py                graph_walker.py-20070525030359-y852guab65d4wtn0-1
      bzrlib/msgeditor.py            msgeditor.py-20050901111708-ef6d8de98f5d8f2f
      bzrlib/reconcile.py            reweave_inventory.py-20051108164726-1e5e0934febac06e
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/revision.py             revision.py-20050309040759-e77802c08f3999d5
      bzrlib/revisionspec.py         revisionspec.py-20050907152633-17567659fd5c0ddb
      bzrlib/sign_my_commits.py      sign_my_commits.py-20060215152201-5a6363365180e671
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/__init__.py __init__.py-20051128053524-eba30d8255e08dc3
      bzrlib/tests/blackbox/test_info.py test_info.py-20060215045507-bbdd2d34efab9e0a
      bzrlib/tests/blackbox/test_reconcile.py test_fix.py-20060223013051-9a188e15a5ee9451
      bzrlib/tests/blackbox/test_versioning.py versioning.py-20050622071821-3ddf5e2e5e93c602
      bzrlib/tests/interrepository_implementations/test_interrepository.py test_interrepository.py-20060220061411-1ec13fa99e5e3eee
      bzrlib/tests/repository_implementations/__init__.py __init__.py-20060131092037-9564957a7d4a841b
      bzrlib/tests/repository_implementations/test_check.py test_check.py-20070824124512-38g4d135gcqxo4zb-1
      bzrlib/tests/repository_implementations/test_check_reconcile.py test_broken.py-20070928125406-62236394w0jpbpd6-2
      bzrlib/tests/test_annotate.py  test_annotate.py-20061213215015-sttc9agsxomls7q0-1
      bzrlib/tests/test_commit.py    test_commit.py-20050914060732-279f057f8c295434
      bzrlib/tests/test_dirstate.py  test_dirstate.py-20060728012006-d6mvoihjb3je9peu-2
      bzrlib/tests/test_fetch.py     testfetch.py-20050825090644-f73e07e7dfb1765a
      bzrlib/tests/test_graph.py     test_graph_walker.py-20070525030405-enq4r60hhi9xrujc-1
      bzrlib/tests/test_memorytree.py test_memorytree.py-20060906023413-4wlkalbdpsxi2r4y-3
      bzrlib/tests/test_merge_core.py test_merge_core.py-20050824132511-eb99b23a0eec641b
      bzrlib/tests/test_merge_directive.py test_merge_directive-20070228184838-ja62280spt1g7f4x-2
      bzrlib/tests/test_msgeditor.py test_msgeditor.py-20051202041359-920315ec6011ee51
      bzrlib/transform.py            transform.py-20060105172343-dd99e54394d91687
      bzrlib/transport/local.py      local_transport.py-20050711165921-9b1f142bfe480c24
=== modified file 'NEWS'
--- a/NEWS	2007-11-26 11:36:53 +0000
+++ b/NEWS	2007-11-26 13:55:51 +0000
@@ -27,8 +27,9 @@
      supported transports.
      (Vincent Ladeuil)
 
-   * New rich-root format, recording the same data about tree roots that's
-     recorded for all other directories.  (Aaron Bentley)
+   * New rich-root and rich-root-pack formats, recording the same data about
+     tree roots that's recorded for all other directories.
+     (Aaron Bentley, #164639)
 
    * ``switch`` command added for changing the branch a lightweight checkout
      is associated with and updating the tree to reflect the latest content

=== modified file 'bzrlib/bzrdir.py'
--- a/bzrlib/bzrdir.py	2007-11-26 02:05:38 +0000
+++ b/bzrlib/bzrdir.py	2007-11-26 13:55:51 +0000
@@ -2529,4 +2529,16 @@
     hidden=True,
     experimental=True,
     )
+format_registry.register_metadir('rich-root-pack',
+    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack4',
+    help='New in 1.0: Pack-based format with data compatible with '
+        'rich-root format repositories. Interoperates with '
+        'bzr repositories before 0.92 but cannot be read by bzr < 1.0. '
+        'NOTE: This format is experimental. Before using it, please read '
+        'http://doc.bazaar-vcs.org/latest/developers/knitpack.html.',
+    branch_format='bzrlib.branch.BzrBranchFormat6',
+    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
+    hidden=False,
+    experimental=True,
+    )
 format_registry.set_default('dirstate-tags')

=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2007-11-26 02:05:38 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2007-11-26 13:55:51 +0000
@@ -48,6 +48,7 @@
     osutils,
     transactions,
     xml5,
+    xml6,
     xml7,
     )
 
@@ -1870,3 +1871,42 @@
     def get_format_description(self):
         """See RepositoryFormat.get_format_description()."""
         return "Packs containing knits with subtree support\n"
+
+
+class RepositoryFormatKnitPack4(RepositoryFormatPack):
+    """A rich-root, no subtrees parameterised Pack repository.
+
+    This repository format uses the xml6 serializer to get:
+     - support for recording full info about the tree root
+
+    This format was introduced in 1.0.
+    """
+
+    repository_class = KnitPackRepository
+    _commit_builder_class = PackRootCommitBuilder
+    rich_root_data = True
+    supports_tree_reference = False
+    _serializer = xml6.serializer_v6
+
+    def _get_matching_bzrdir(self):
+        return bzrdir.format_registry.make_bzrdir(
+            'rich-root-pack')
+
+    def _ignore_setting_bzrdir(self, format):
+        pass
+
+    _matchingbzrdir = property(_get_matching_bzrdir, _ignore_setting_bzrdir)
+
+    def check_conversion_target(self, target_format):
+        if not target_format.rich_root_data:
+            raise errors.BadConversionTarget(
+                'Does not support rich root data.', target_format)
+
+    def get_format_string(self):
+        """See RepositoryFormat.get_format_string()."""
+        return ("Bazaar pack repository format 1 with rich root"
+                " (needs bzr 1.0)\n")
+
+    def get_format_description(self):
+        """See RepositoryFormat.get_format_description()."""
+        return "Packs containing knits with rich root support\n"

=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2007-11-22 22:48:14 +0000
+++ b/bzrlib/repository.py	2007-11-25 17:54:55 +0000
@@ -2175,6 +2175,11 @@
     'bzrlib.repofmt.pack_repo',
     'RepositoryFormatKnitPack3',
     )
+format_registry.register_lazy(
+    'Bazaar pack repository format 1 with rich root (needs bzr 1.0)\n',
+    'bzrlib.repofmt.pack_repo',
+    'RepositoryFormatKnitPack4',
+    )
 
 
 class InterRepository(InterObject):

=== modified file 'bzrlib/tests/blackbox/test_info.py'
--- a/bzrlib/tests/blackbox/test_info.py	2007-11-26 02:05:38 +0000
+++ b/bzrlib/tests/blackbox/test_info.py	2007-11-26 13:55:51 +0000
@@ -264,7 +264,8 @@
         branch5 = tree5.branch
         out, err = self.run_bzr('info -v lightcheckout')
         self.assertEqualDiff(
-"""Lightweight checkout (format: dirstate or dirstate-tags or pack-0.92 or rich-root)
+"""Lightweight checkout (format: dirstate or dirstate-tags or \
+pack-0.92 or rich-root or rich-root-pack)
 Location:
   light checkout root: lightcheckout
    checkout of branch: standalone
@@ -442,7 +443,8 @@
         # Out of date lightweight checkout
         out, err = self.run_bzr('info lightcheckout --verbose')
         self.assertEqualDiff(
-"""Lightweight checkout (format: dirstate or dirstate-tags or pack-0.92 or rich-root)
+"""Lightweight checkout (format: dirstate or dirstate-tags or \
+pack-0.92 or rich-root or rich-root-pack)
 Location:
   light checkout root: lightcheckout
    checkout of branch: standalone
@@ -581,7 +583,8 @@
         datestring_first = format_date(rev.timestamp, rev.timezone)
         out, err = self.run_bzr('info tree/lightcheckout --verbose')
         self.assertEqualDiff(
-"""Lightweight checkout (format: dirstate or dirstate-tags or pack-0.92 or rich-root)
+"""Lightweight checkout (format: dirstate or dirstate-tags or \
+pack-0.92 or rich-root or rich-root-pack)
 Location:
   light checkout root: tree/lightcheckout
    checkout of branch: repo/branch
@@ -712,7 +715,8 @@
         datestring_last = format_date(rev.timestamp, rev.timezone)
         out, err = self.run_bzr('info tree/lightcheckout --verbose')
         self.assertEqualDiff(
-"""Lightweight checkout (format: dirstate or dirstate-tags or pack-0.92 or rich-root)
+"""Lightweight checkout (format: dirstate or dirstate-tags or \
+pack-0.92 or rich-root or rich-root-pack)
 Location:
   light checkout root: tree/lightcheckout
    checkout of branch: repo/branch
@@ -1155,7 +1159,8 @@
             (False, True): 'Lightweight checkout',
             (False, False): 'Checkout',
             }[(shared_repo is not None, light_checkout)]
-        format = {True: 'dirstate or dirstate-tags or pack-0.92 or rich-root',
+        format = {True: 'dirstate or dirstate-tags or pack-0.92'
+                        ' or rich-root or rich-root-pack',
                   False: 'dirstate'}[light_checkout]
         if repo_locked:
             repo_locked = lco_tree.branch.repository.get_physical_lock_status()

=== modified file 'bzrlib/tests/test_info.py'
--- a/bzrlib/tests/test_info.py	2007-11-26 02:05:38 +0000
+++ b/bzrlib/tests/test_info.py	2007-11-26 13:55:51 +0000
@@ -139,8 +139,10 @@
                 continue
             expected = None
             if key in ('dirstate', 'dirstate-tags', 'dirstate-with-subtree',
-                'pack-0.92', 'pack-0.92-subtree', 'rich-root'):
-                expected = 'dirstate or dirstate-tags or pack-0.92 or rich-root'
+                'pack-0.92', 'pack-0.92-subtree', 'rich-root',
+                'rich-root-pack'):
+                expected = 'dirstate or dirstate-tags or pack-0.92 or'\
+                    ' rich-root or rich-root-pack'
             if key in ('knit', 'metaweave'):
                 expected = 'knit or metaweave'
             self.assertCheckoutDescription(key, expected)




More information about the bazaar-commits mailing list