/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/bzrdir.py

  • Committer: Jelmer Vernooij
  • Date: 2010-03-21 21:39:33 UTC
  • mfrom: (5102 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5143.
  • Revision ID: jelmer@samba.org-20100321213933-fexeh9zcoz8oaju2
merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
29
29
 
30
30
import os
31
31
import sys
 
32
import warnings
32
33
 
33
34
from bzrlib.lazy_import import lazy_import
34
35
lazy_import(globals(), """
354
355
                for subdir in sorted(subdirs, reverse=True):
355
356
                    pending.append(current_transport.clone(subdir))
356
357
 
 
358
    def list_branches(self):
 
359
        """Return a sequence of all branches local to this control directory.
 
360
 
 
361
        """
 
362
        try:
 
363
            return [self.open_branch()]
 
364
        except errors.NotBranchError:
 
365
            return []
 
366
 
357
367
    @staticmethod
358
368
    def find_branches(transport):
359
369
        """Find all branches under a transport.
371
381
            except errors.NoRepositoryPresent:
372
382
                pass
373
383
            else:
374
 
                return False, (None, repository)
375
 
            try:
376
 
                branch = bzrdir.open_branch()
377
 
            except errors.NotBranchError:
378
 
                return True, (None, None)
379
 
            else:
380
 
                return True, (branch, None)
381
 
        branches = []
382
 
        for branch, repo in BzrDir.find_bzrdirs(transport, evaluate=evaluate):
 
384
                return False, ([], repository)
 
385
            return True, (bzrdir.list_branches(), None)
 
386
        ret = []
 
387
        for branches, repo in BzrDir.find_bzrdirs(transport,
 
388
                                                  evaluate=evaluate):
383
389
            if repo is not None:
384
 
                branches.extend(repo.find_branches())
385
 
            if branch is not None:
386
 
                branches.append(branch)
387
 
        return branches
 
390
                ret.extend(repo.find_branches())
 
391
            if branches is not None:
 
392
                ret.extend(branches)
 
393
        return ret
388
394
 
389
395
    def destroy_repository(self):
390
396
        """Destroy the repository in this BzrDir"""
391
397
        raise NotImplementedError(self.destroy_repository)
392
398
 
393
 
    def create_branch(self):
 
399
    def create_branch(self, name=None):
394
400
        """Create a branch in this BzrDir.
395
401
 
 
402
        :param name: Name of the colocated branch to create, None for
 
403
            the default branch.
 
404
 
396
405
        The bzrdir's format will control what branch format is created.
397
406
        For more control see BranchFormatXX.create(a_bzrdir).
398
407
        """
399
408
        raise NotImplementedError(self.create_branch)
400
409
 
401
 
    def destroy_branch(self):
402
 
        """Destroy the branch in this BzrDir"""
 
410
    def destroy_branch(self, name=None):
 
411
        """Destroy a branch in this BzrDir.
 
412
        
 
413
        :param name: Name of the branch to destroy, None for the default 
 
414
            branch.
 
415
        """
403
416
        raise NotImplementedError(self.destroy_branch)
404
417
 
405
418
    @staticmethod
574
587
 
575
588
        :return: Tuple with old path name and new path name
576
589
        """
 
590
        def name_gen(base='backup.bzr'):
 
591
            counter = 1
 
592
            name = "%s.~%d~" % (base, counter)
 
593
            while self.root_transport.has(name):
 
594
                counter += 1
 
595
                name = "%s.~%d~" % (base, counter)
 
596
            return name
 
597
 
 
598
        backup_dir=name_gen()
577
599
        pb = ui.ui_factory.nested_progress_bar()
578
600
        try:
579
601
            # FIXME: bug 300001 -- the backup fails if the backup directory
580
602
            # already exists, but it should instead either remove it or make
581
603
            # a new backup directory.
582
604
            #
583
 
            # FIXME: bug 262450 -- the backup directory should have the same
584
 
            # permissions as the .bzr directory (probably a bug in copy_tree)
585
605
            old_path = self.root_transport.abspath('.bzr')
586
 
            new_path = self.root_transport.abspath('backup.bzr')
 
606
            new_path = self.root_transport.abspath(backup_dir)
587
607
            ui.ui_factory.note('making backup of %s\n  to %s' % (old_path, new_path,))
588
 
            self.root_transport.copy_tree('.bzr', 'backup.bzr')
 
608
            self.root_transport.copy_tree('.bzr', backup_dir)
589
609
            return (old_path, new_path)
590
610
        finally:
591
611
            pb.finished()
693
713
        """
694
714
        return None
695
715
 
696
 
    def get_branch_transport(self, branch_format):
 
716
    def get_branch_transport(self, branch_format, name=None):
697
717
        """Get the transport for use by branch format in this BzrDir.
698
718
 
699
719
        Note that bzr dirs that do not support format strings will raise
877
897
        BzrDir._check_supported(format, _unsupported)
878
898
        return format.open(transport, _found=True)
879
899
 
880
 
    def open_branch(self, unsupported=False, ignore_fallbacks=False):
 
900
    def open_branch(self, name=None, unsupported=False,
 
901
                    ignore_fallbacks=False):
881
902
        """Open the branch object at this BzrDir if one is present.
882
903
 
883
904
        If unsupported is True, then no longer supported branch formats can
1021
1042
        """
1022
1043
        raise NotImplementedError(self.open_workingtree)
1023
1044
 
1024
 
    def has_branch(self):
 
1045
    def has_branch(self, name=None):
1025
1046
        """Tell if this bzrdir contains a branch.
1026
1047
 
1027
1048
        Note: if you're going to open the branch, you should just go ahead
1029
1050
        branch and discards it, and that's somewhat expensive.)
1030
1051
        """
1031
1052
        try:
1032
 
            self.open_branch()
 
1053
            self.open_branch(name)
1033
1054
            return True
1034
1055
        except errors.NotBranchError:
1035
1056
            return False
1358
1379
            tree.clone(result)
1359
1380
        return result
1360
1381
 
1361
 
    def create_branch(self):
 
1382
    def create_branch(self, name=None):
1362
1383
        """See BzrDir.create_branch."""
1363
 
        return self._format.get_branch_format().initialize(self)
 
1384
        return self._format.get_branch_format().initialize(self, name=name)
1364
1385
 
1365
 
    def destroy_branch(self):
 
1386
    def destroy_branch(self, name=None):
1366
1387
        """See BzrDir.destroy_branch."""
1367
1388
        raise errors.UnsupportedOperation(self.destroy_branch, self)
1368
1389
 
1424
1445
        raise errors.UnsupportedOperation(self.destroy_workingtree_metadata,
1425
1446
                                          self)
1426
1447
 
1427
 
    def get_branch_transport(self, branch_format):
 
1448
    def get_branch_transport(self, branch_format, name=None):
1428
1449
        """See BzrDir.get_branch_transport()."""
 
1450
        if name is not None:
 
1451
            raise errors.NoColocatedBranchSupport(self)
1429
1452
        if branch_format is None:
1430
1453
            return self.transport
1431
1454
        try:
1464
1487
            format = BzrDirFormat.get_default_format()
1465
1488
        return not isinstance(self._format, format.__class__)
1466
1489
 
1467
 
    def open_branch(self, unsupported=False, ignore_fallbacks=False):
 
1490
    def open_branch(self, name=None, unsupported=False,
 
1491
                    ignore_fallbacks=False):
1468
1492
        """See BzrDir.open_branch."""
1469
1493
        from bzrlib.branch import BzrBranchFormat4
1470
1494
        format = BzrBranchFormat4()
1471
1495
        self._check_supported(format, unsupported)
1472
 
        return format.open(self, _found=True)
 
1496
        return format.open(self, name, _found=True)
1473
1497
 
1474
1498
    def sprout(self, url, revision_id=None, force_new_repo=False,
1475
1499
               possible_transports=None, accelerator_tree=None,
1592
1616
        """See BzrDir.can_convert_format()."""
1593
1617
        return True
1594
1618
 
1595
 
    def create_branch(self):
 
1619
    def create_branch(self, name=None):
1596
1620
        """See BzrDir.create_branch."""
1597
 
        return self._format.get_branch_format().initialize(self)
 
1621
        return self._format.get_branch_format().initialize(self, name=name)
1598
1622
 
1599
 
    def destroy_branch(self):
 
1623
    def destroy_branch(self, name=None):
1600
1624
        """See BzrDir.create_branch."""
 
1625
        if name is not None:
 
1626
            raise errors.NoColocatedBranchSupport(self)
1601
1627
        self.transport.delete_tree('branch')
1602
1628
 
1603
1629
    def create_repository(self, shared=False):
1646
1672
        format = BranchFormat.find_format(self)
1647
1673
        return format.get_reference(self)
1648
1674
 
1649
 
    def get_branch_transport(self, branch_format):
 
1675
    def get_branch_transport(self, branch_format, name=None):
1650
1676
        """See BzrDir.get_branch_transport()."""
 
1677
        if name is not None:
 
1678
            raise errors.NoColocatedBranchSupport(self)
1651
1679
        # XXX: this shouldn't implicitly create the directory if it's just
1652
1680
        # promising to get a transport -- mbp 20090727
1653
1681
        if branch_format is None:
1724
1752
                return True
1725
1753
        except errors.NoRepositoryPresent:
1726
1754
            pass
1727
 
        try:
1728
 
            if not isinstance(self.open_branch()._format,
 
1755
        for branch in self.list_branches():
 
1756
            if not isinstance(branch._format,
1729
1757
                              format.get_branch_format().__class__):
1730
1758
                # the branch needs an upgrade.
1731
1759
                return True
1732
 
        except errors.NotBranchError:
1733
 
            pass
1734
1760
        try:
1735
1761
            my_wt = self.open_workingtree(recommend_upgrade=False)
1736
1762
            if not isinstance(my_wt._format,
1741
1767
            pass
1742
1768
        return False
1743
1769
 
1744
 
    def open_branch(self, unsupported=False, ignore_fallbacks=False):
 
1770
    def open_branch(self, name=None, unsupported=False,
 
1771
                    ignore_fallbacks=False):
1745
1772
        """See BzrDir.open_branch."""
1746
1773
        format = self.find_branch_format()
1747
1774
        self._check_supported(format, unsupported)
1748
 
        return format.open(self, _found=True, ignore_fallbacks=ignore_fallbacks)
 
1775
        return format.open(self, name=name,
 
1776
            _found=True, ignore_fallbacks=ignore_fallbacks)
1749
1777
 
1750
1778
    def open_repository(self, unsupported=False):
1751
1779
        """See BzrDir.open_repository."""
1783
1811
    Once a format is deprecated, just deprecate the initialize and open
1784
1812
    methods on the format class. Do not deprecate the object, as the
1785
1813
    object will be created every system load.
 
1814
 
 
1815
    :cvar colocated_branches: Whether this formats supports colocated branches.
1786
1816
    """
1787
1817
 
1788
1818
    _default_format = None
1805
1835
 
1806
1836
    _lock_file_name = 'branch-lock'
1807
1837
 
 
1838
    colocated_branches = False
 
1839
    """Whether co-located branches are supported for this control dir format.
 
1840
    """
 
1841
 
1808
1842
    # _lock_class must be set in subclasses to the lock type, typ.
1809
1843
    # TransportLock or LockDir
1810
1844
 
2609
2643
    def convert(self, to_convert, pb):
2610
2644
        """See Converter.convert()."""
2611
2645
        self.bzrdir = to_convert
2612
 
        self.pb = pb
2613
 
        ui.ui_factory.note('starting upgrade from format 4 to 5')
2614
 
        if isinstance(self.bzrdir.transport, local.LocalTransport):
2615
 
            self.bzrdir.get_workingtree_transport(None).delete('stat-cache')
2616
 
        self._convert_to_weaves()
2617
 
        return BzrDir.open(self.bzrdir.root_transport.base)
 
2646
        if pb is not None:
 
2647
            warnings.warn("pb parameter to convert() is deprecated")
 
2648
        self.pb = ui.ui_factory.nested_progress_bar()
 
2649
        try:
 
2650
            ui.ui_factory.note('starting upgrade from format 4 to 5')
 
2651
            if isinstance(self.bzrdir.transport, local.LocalTransport):
 
2652
                self.bzrdir.get_workingtree_transport(None).delete('stat-cache')
 
2653
            self._convert_to_weaves()
 
2654
            return BzrDir.open(self.bzrdir.root_transport.base)
 
2655
        finally:
 
2656
            self.pb.finished()
2618
2657
 
2619
2658
    def _convert_to_weaves(self):
2620
2659
        ui.ui_factory.note('note: upgrade may be faster if all store files are ungzipped first')
2861
2900
    def convert(self, to_convert, pb):
2862
2901
        """See Converter.convert()."""
2863
2902
        self.bzrdir = to_convert
2864
 
        self.pb = pb
2865
 
        ui.ui_factory.note('starting upgrade from format 5 to 6')
2866
 
        self._convert_to_prefixed()
2867
 
        return BzrDir.open(self.bzrdir.root_transport.base)
 
2903
        pb = ui.ui_factory.nested_progress_bar()
 
2904
        try:
 
2905
            ui.ui_factory.note('starting upgrade from format 5 to 6')
 
2906
            self._convert_to_prefixed()
 
2907
            return BzrDir.open(self.bzrdir.root_transport.base)
 
2908
        finally:
 
2909
            pb.finished()
2868
2910
 
2869
2911
    def _convert_to_prefixed(self):
2870
2912
        from bzrlib.store import TransportStore
2903
2945
        from bzrlib.repofmt.weaverepo import RepositoryFormat7
2904
2946
        from bzrlib.branch import BzrBranchFormat5
2905
2947
        self.bzrdir = to_convert
2906
 
        self.pb = pb
 
2948
        self.pb = ui.ui_factory.nested_progress_bar()
2907
2949
        self.count = 0
2908
2950
        self.total = 20 # the steps we know about
2909
2951
        self.garbage_inventories = []
2989
3031
            'branch-format',
2990
3032
            BzrDirMetaFormat1().get_format_string(),
2991
3033
            mode=self.file_mode)
 
3034
        self.pb.finished()
2992
3035
        return BzrDir.open(self.bzrdir.root_transport.base)
2993
3036
 
2994
3037
    def make_lock(self, name):
3030
3073
    def convert(self, to_convert, pb):
3031
3074
        """See Converter.convert()."""
3032
3075
        self.bzrdir = to_convert
3033
 
        self.pb = pb
 
3076
        self.pb = ui.ui_factory.nested_progress_bar()
3034
3077
        self.count = 0
3035
3078
        self.total = 1
3036
3079
        self.step('checking repository format')
3044
3087
                ui.ui_factory.note('starting repository conversion')
3045
3088
                converter = CopyConverter(self.target_format.repository_format)
3046
3089
                converter.convert(repo, pb)
3047
 
        try:
3048
 
            branch = self.bzrdir.open_branch()
3049
 
        except errors.NotBranchError:
3050
 
            pass
3051
 
        else:
 
3090
        for branch in self.bzrdir.list_branches():
3052
3091
            # TODO: conversions of Branch and Tree should be done by
3053
3092
            # InterXFormat lookups/some sort of registry.
3054
3093
            # Avoid circular imports
3096
3135
                isinstance(self.target_format.workingtree_format,
3097
3136
                    workingtree_4.WorkingTreeFormat6)):
3098
3137
                workingtree_4.Converter4or5to6().convert(tree)
 
3138
        self.pb.finished()
3099
3139
        return to_convert
3100
3140
 
3101
3141
 
3108
3148
 
3109
3149
    def __init__(self):
3110
3150
        BzrDirMetaFormat1.__init__(self)
 
3151
        # XXX: It's a bit ugly that the network name is here, because we'd
 
3152
        # like to believe that format objects are stateless or at least
 
3153
        # immutable,  However, we do at least avoid mutating the name after
 
3154
        # it's returned.  See <https://bugs.edge.launchpad.net/bzr/+bug/504102>
3111
3155
        self._network_name = None
3112
3156
 
 
3157
    def __repr__(self):
 
3158
        return "%s(_network_name=%r)" % (self.__class__.__name__,
 
3159
            self._network_name)
 
3160
 
3113
3161
    def get_format_description(self):
3114
3162
        if self._network_name:
3115
3163
            real_format = network_format_registry.get(self._network_name)
3252
3300
        args.append(self._serialize_NoneString(repo_format_name))
3253
3301
        args.append(self._serialize_NoneTrueFalse(make_working_trees))
3254
3302
        args.append(self._serialize_NoneTrueFalse(shared_repo))
3255
 
        if self._network_name is None:
3256
 
            self._network_name = \
 
3303
        request_network_name = self._network_name or \
3257
3304
            BzrDirFormat.get_default_format().network_name()
3258
3305
        try:
3259
3306
            response = client.call('BzrDirFormat.initialize_ex_1.16',
3260
 
                self.network_name(), path, *args)
 
3307
                request_network_name, path, *args)
3261
3308
        except errors.UnknownSmartMethod:
3262
3309
            client._medium._remember_remote_is_before((1,16))
3263
3310
            local_dir_format = BzrDirMetaFormat1()
3513
3560
                experimental_pairs.append((key, help))
3514
3561
            else:
3515
3562
                output += wrapped(key, help, info)
3516
 
        output += "\nSee ``bzr help formats`` for more about storage formats."
 
3563
        output += "\nSee :doc:`formats-help` for more about storage formats."
3517
3564
        other_output = ""
3518
3565
        if len(experimental_pairs) > 0:
3519
3566
            other_output += "Experimental formats are shown below.\n\n"
3532
3579
            other_output += \
3533
3580
                "\nNo deprecated formats are available.\n\n"
3534
3581
        other_output += \
3535
 
            "\nSee ``bzr help formats`` for more about storage formats."
 
3582
                "\nSee :doc:`formats-help` for more about storage formats."
3536
3583
 
3537
3584
        if topic == 'other-formats':
3538
3585
            return other_output
3707
3754
format_registry.register('weave', BzrDirFormat6,
3708
3755
    'Pre-0.8 format.  Slower than knit and does not'
3709
3756
    ' support checkouts or shared repositories.',
 
3757
    hidden=True,
3710
3758
    deprecated=True)
3711
3759
format_registry.register_metadir('metaweave',
3712
3760
    'bzrlib.repofmt.weaverepo.RepositoryFormat7',
3713
3761
    'Transitional format in 0.8.  Slower than knit.',
3714
3762
    branch_format='bzrlib.branch.BzrBranchFormat5',
3715
3763
    tree_format='bzrlib.workingtree.WorkingTreeFormat3',
 
3764
    hidden=True,
3716
3765
    deprecated=True)
3717
3766
format_registry.register_metadir('knit',
3718
3767
    'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
3719
3768
    'Format using knits.  Recommended for interoperation with bzr <= 0.14.',
3720
3769
    branch_format='bzrlib.branch.BzrBranchFormat5',
3721
3770
    tree_format='bzrlib.workingtree.WorkingTreeFormat3',
 
3771
    hidden=True,
3722
3772
    deprecated=True)
3723
3773
format_registry.register_metadir('dirstate',
3724
3774
    'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
3728
3778
    # this uses bzrlib.workingtree.WorkingTreeFormat4 because importing
3729
3779
    # directly from workingtree_4 triggers a circular import.
3730
3780
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3781
    hidden=True,
3731
3782
    deprecated=True)
3732
3783
format_registry.register_metadir('dirstate-tags',
3733
3784
    'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
3736
3787
        ' Incompatible with bzr < 0.15.',
3737
3788
    branch_format='bzrlib.branch.BzrBranchFormat6',
3738
3789
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3790
    hidden=True,
3739
3791
    deprecated=True)
3740
3792
format_registry.register_metadir('rich-root',
3741
3793
    'bzrlib.repofmt.knitrepo.RepositoryFormatKnit4',
3743
3795
        ' bzr < 1.0.',
3744
3796
    branch_format='bzrlib.branch.BzrBranchFormat6',
3745
3797
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3798
    hidden=True,
3746
3799
    deprecated=True)
3747
3800
format_registry.register_metadir('dirstate-with-subtree',
3748
3801
    'bzrlib.repofmt.knitrepo.RepositoryFormatKnit3',
3759
3812
    help='New in 0.92: Pack-based format with data compatible with '
3760
3813
        'dirstate-tags format repositories. Interoperates with '
3761
3814
        'bzr repositories before 0.92 but cannot be read by bzr < 0.92. '
3762
 
        'Previously called knitpack-experimental.  '
3763
 
        'For more information, see '
3764
 
        'http://doc.bazaar-vcs.org/latest/developers/packrepo.html.',
 
3815
        ,
3765
3816
    branch_format='bzrlib.branch.BzrBranchFormat6',
3766
3817
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
3767
3818
    )
3770
3821
    help='New in 0.92: Pack-based format with data compatible with '
3771
3822
        'dirstate-with-subtree format repositories. Interoperates with '
3772
3823
        'bzr repositories before 0.92 but cannot be read by bzr < 0.92. '
3773
 
        'Previously called knitpack-experimental.  '
3774
 
        'For more information, see '
3775
 
        'http://doc.bazaar-vcs.org/latest/developers/packrepo.html.',
 
3824
        ,
3776
3825
    branch_format='bzrlib.branch.BzrBranchFormat6',
3777
3826
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
3778
3827
    hidden=True,
3784
3833
         '(needed for bzr-svn and bzr-git).',
3785
3834
    branch_format='bzrlib.branch.BzrBranchFormat6',
3786
3835
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3836
    hidden=True,
3787
3837
    )
3788
3838
format_registry.register_metadir('1.6',
3789
3839
    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack5',
3792
3842
         'not present locally.',
3793
3843
    branch_format='bzrlib.branch.BzrBranchFormat7',
3794
3844
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3845
    hidden=True,
3795
3846
    )
3796
3847
format_registry.register_metadir('1.6.1-rich-root',
3797
3848
    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack5RichRoot',
3799
3850
         '(needed for bzr-svn and bzr-git).',
3800
3851
    branch_format='bzrlib.branch.BzrBranchFormat7',
3801
3852
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3853
    hidden=True,
3802
3854
    )
3803
3855
format_registry.register_metadir('1.9',
3804
3856
    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack6',
3807
3859
         'performance for most operations.',
3808
3860
    branch_format='bzrlib.branch.BzrBranchFormat7',
3809
3861
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3862
    hidden=True,
3810
3863
    )
3811
3864
format_registry.register_metadir('1.9-rich-root',
3812
3865
    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack6RichRoot',
3814
3867
         '(needed for bzr-svn and bzr-git).',
3815
3868
    branch_format='bzrlib.branch.BzrBranchFormat7',
3816
3869
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
3870
    hidden=True,
3817
3871
    )
3818
3872
format_registry.register_metadir('1.14',
3819
3873
    'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack6',
3835
3889
        'to and from rich-root-pack (and anything compatible with '
3836
3890
        'rich-root-pack) format repositories. Repositories and branches in '
3837
3891
        'this format can only be read by bzr.dev. Please read '
3838
 
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
3892
        'http://doc.bazaar.canonical.com/latest/developers/development-repo.html '
3839
3893
        'before use.',
3840
3894
    branch_format='bzrlib.branch.BzrBranchFormat7',
3841
3895
    tree_format='bzrlib.workingtree.WorkingTreeFormat6',
3842
3896
    experimental=True,
3843
3897
    alias=True,
 
3898
    hidden=True,
3844
3899
    )
3845
3900
format_registry.register_metadir('development-subtree',
3846
3901
    'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment2Subtree',
3848
3903
        'from pack-0.92-subtree (and anything compatible with '
3849
3904
        'pack-0.92-subtree) format repositories. Repositories and branches in '
3850
3905
        'this format can only be read by bzr.dev. Please read '
3851
 
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
3906
        'http://doc.bazaar.canonical.com/latest/developers/development-repo.html '
3852
3907
        'before use.',
3853
3908
    branch_format='bzrlib.branch.BzrBranchFormat7',
3854
3909
    tree_format='bzrlib.workingtree.WorkingTreeFormat6',
3855
3910
    experimental=True,
 
3911
    hidden=True,
3856
3912
    alias=False, # Restore to being an alias when an actual development subtree format is added
3857
3913
                 # This current non-alias status is simply because we did not introduce a
3858
3914
                 # chk based subtree format.
3863
3919
    'bzrlib.repofmt.groupcompress_repo.RepositoryFormatCHK1',
3864
3920
    help='pack-1.9 with 255-way hashed CHK inv, group compress, rich roots '
3865
3921
        'Please read '
3866
 
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
3922
        'http://doc.bazaar.canonical.com/latest/developers/development-repo.html '
3867
3923
        'before use.',
3868
3924
    branch_format='bzrlib.branch.BzrBranchFormat7',
3869
3925
    tree_format='bzrlib.workingtree.WorkingTreeFormat6',
3875
3931
    'bzrlib.repofmt.groupcompress_repo.RepositoryFormatCHK2',
3876
3932
    help='pack-1.9 with 255-way hashed CHK inv, bencode revision, group compress, '
3877
3933
        'rich roots. Please read '
3878
 
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
3934
        'http://doc.bazaar.canonical.com/latest/developers/development-repo.html '
3879
3935
        'before use.',
3880
3936
    branch_format='bzrlib.branch.BzrBranchFormat7',
3881
3937
    tree_format='bzrlib.workingtree.WorkingTreeFormat6',
3902
3958
    branch_format='bzrlib.branch.BzrBranchFormat7',
3903
3959
    tree_format='bzrlib.workingtree.WorkingTreeFormat6',
3904
3960
    alias=True,
 
3961
    hidden=True,
3905
3962
    help='Same as 2a.')
3906
3963
 
3907
3964
# The current format that is made on 'bzr init'.