~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bzrdir.py

  • Committer: Alexander Belchenko
  • Date: 2008-02-20 10:36:15 UTC
  • mfrom: (3228 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3231.
  • Revision ID: bialix@ukr.net-20080220103615-uxw9jc9m6l63ea27
merge bzr.dev; update patch for 1.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
748
748
    def _get_tree_branch(self):
749
749
        """Return the branch and tree, if any, for this bzrdir.
750
750
 
751
 
        Return None for tree if not present.
 
751
        Return None for tree if not present or inaccessible.
752
752
        Raise NotBranchError if no branch is present.
753
753
        :return: (tree, branch)
754
754
        """
2447
2447
    e.g. BzrDirMeta1 with weave repository.  Also, it's more user-oriented.
2448
2448
    """
2449
2449
 
 
2450
    def __init__(self):
 
2451
        """Create a BzrDirFormatRegistry."""
 
2452
        self._aliases = set()
 
2453
        super(BzrDirFormatRegistry, self).__init__()
 
2454
 
 
2455
    def aliases(self):
 
2456
        """Return a set of the format names which are aliases."""
 
2457
        return frozenset(self._aliases)
 
2458
 
2450
2459
    def register_metadir(self, key,
2451
2460
             repository_format, help, native=True, deprecated=False,
2452
2461
             branch_format=None,
2453
2462
             tree_format=None,
2454
2463
             hidden=False,
2455
 
             experimental=False):
 
2464
             experimental=False,
 
2465
             alias=False):
2456
2466
        """Register a metadir subformat.
2457
2467
 
2458
2468
        These all use a BzrDirMetaFormat1 bzrdir, but can be parameterized
2491
2501
                bd.repository_format = _load(repository_format)
2492
2502
            return bd
2493
2503
        self.register(key, helper, help, native, deprecated, hidden,
2494
 
            experimental)
 
2504
            experimental, alias)
2495
2505
 
2496
2506
    def register(self, key, factory, help, native=True, deprecated=False,
2497
 
                 hidden=False, experimental=False):
 
2507
                 hidden=False, experimental=False, alias=False):
2498
2508
        """Register a BzrDirFormat factory.
2499
2509
        
2500
2510
        The factory must be a callable that takes one parameter: the key.
2503
2513
        This function mainly exists to prevent the info object from being
2504
2514
        supplied directly.
2505
2515
        """
2506
 
        registry.Registry.register(self, key, factory, help, 
 
2516
        registry.Registry.register(self, key, factory, help,
2507
2517
            BzrDirFormatInfo(native, deprecated, hidden, experimental))
 
2518
        if alias:
 
2519
            self._aliases.add(key)
2508
2520
 
2509
2521
    def register_lazy(self, key, module_name, member_name, help, native=True,
2510
 
                      deprecated=False, hidden=False, experimental=False):
2511
 
        registry.Registry.register_lazy(self, key, module_name, member_name, 
 
2522
        deprecated=False, hidden=False, experimental=False, alias=False):
 
2523
        registry.Registry.register_lazy(self, key, module_name, member_name,
2512
2524
            help, BzrDirFormatInfo(native, deprecated, hidden, experimental))
 
2525
        if alias:
 
2526
            self._aliases.add(key)
2513
2527
 
2514
2528
    def set_default(self, key):
2515
2529
        """Set the 'default' key to be a clone of the supplied key.
2516
2530
        
2517
2531
        This method must be called once and only once.
2518
2532
        """
2519
 
        registry.Registry.register(self, 'default', self.get(key), 
 
2533
        registry.Registry.register(self, 'default', self.get(key),
2520
2534
            self.get_help(key), info=self.get_info(key))
 
2535
        self._aliases.add('default')
2521
2536
 
2522
2537
    def set_default_repository(self, key):
2523
2538
        """Set the FormatRegistry default and Repository default.
2669
2684
    branch_format='bzrlib.branch.BzrBranchFormat6',
2670
2685
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2671
2686
    )
 
2687
# The following two formats should always just be aliases.
 
2688
format_registry.register_metadir('development',
 
2689
    'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0',
 
2690
    help='Current development format. Can convert data to and from pack-0.92 '
 
2691
        '(and anything compatible with pack-0.92) format repositories. '
 
2692
        'Repositories in this format can only be read by bzr.dev. '
 
2693
        'Please read '
 
2694
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
2695
        'before use.',
 
2696
    branch_format='bzrlib.branch.BzrBranchFormat6',
 
2697
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
2698
    experimental=True,
 
2699
    alias=True,
 
2700
    )
 
2701
format_registry.register_metadir('development-subtree',
 
2702
    'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0Subtree',
 
2703
    help='Current development format, subtree variant. Can convert data to and '
 
2704
        'from pack-0.92 (and anything compatible with pack-0.92) format '
 
2705
        'repositories. Repositories in this format can only be read by '
 
2706
        'bzr.dev. Please read '
 
2707
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
2708
        'before use.',
 
2709
    branch_format='bzrlib.branch.BzrBranchFormat6',
 
2710
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
2711
    experimental=True,
 
2712
    alias=True,
 
2713
    )
 
2714
# And the development formats which the will have aliased one of follow:
 
2715
format_registry.register_metadir('development0',
 
2716
    'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0',
 
2717
    help='Trivial rename of pack-0.92 to provide a development format. '
 
2718
        'Please read '
 
2719
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
2720
        'before use.',
 
2721
    branch_format='bzrlib.branch.BzrBranchFormat6',
 
2722
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
2723
    hidden=True,
 
2724
    experimental=True,
 
2725
    )
 
2726
format_registry.register_metadir('development0-subtree',
 
2727
    'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0Subtree',
 
2728
    help='Trivial rename of pack-0.92-subtree to provide a development format. '
 
2729
        'Please read '
 
2730
        'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
 
2731
        'before use.',
 
2732
    branch_format='bzrlib.branch.BzrBranchFormat6',
 
2733
    tree_format='bzrlib.workingtree.WorkingTreeFormat4',
 
2734
    hidden=True,
 
2735
    experimental=True,
 
2736
    )
2672
2737
format_registry.set_default('pack-0.92')