3152.2.2
|
|
The bzrdir format registry now accepts an ``alias`` keyword to register_metadir, used to indicate that a format name is an alias for some other format and thus should not be reported when describing the format. (Robert Collins) -------------- This line and the fmllowing will be ignored --------------
modified: NEWS bzrlib/bzrdir.py bzrlib/info.py bzrlib/tests/test_bzrdir.py bzrlib/tests/test_info.py
=== modified file 'NEWS' --- a/NEWS 2008-01-02 22:30:46 +0000 +++ b/NEWS 2008-01-06 20:04:15 +0000 @@ -135,6 +135,11 @@ * Patience Diff now supports arbitrary python objects, as long as they support ``hash()``. (John Arbash Meinel) + * The bzrdir format registry now accepts an ``alias`` keyword to + register_metadir, used to indicate that a format name is an alias for + some other format and thus should not be reported when describing the + format. (Robert Collins) + API BREAKS: TESTING:
=== modified file 'bzrlib/bzrdir.py' --- a/bzrlib/bzrdir.py 2008-01-02 22:30:46 +0000 +++ b/bzrlib/bzrdir.py 2008-01-06 19:41:29 +0000 @@ -2447,12 +2447,22 @@ e.g. BzrDirMeta1 with weave repository. Also, it's more user-oriented. """ + def __init__(self): + """Create a BzrDirFormatRegistry.""" + self._aliases = set() + super(BzrDirFormatRegistry, self).__init__() + + def aliases(self): + """Return a set of the format names which are aliases.""" + return frozenset(self._aliases) + def register_metadir(self, key, repository_format, help, native=True, deprecated=False, branch_format=None, tree_format=None, hidden=False, - experimental=False): + experimental=False, + alias=False): """Register a metadir subformat. These all use a BzrDirMetaFormat1 bzrdir, but can be parameterized @@ -2491,10 +2501,10 @@ bd.repository_format = _load(repository_format) return bd self.register(key, helper, help, native, deprecated, hidden, - experimental) + experimental, alias) def register(self, key, factory, help, native=True, deprecated=False, - hidden=False, experimental=False): + hidden=False, experimental=False, alias=False): """Register a BzrDirFormat factory. The factory must be a callable that takes one parameter: the key. @@ -2505,11 +2515,15 @@ """ registry.Registry.register(self, key, factory, help, BzrDirFormatInfo(native, deprecated, hidden, experimental)) + if alias: + self._aliases.add(key) def register_lazy(self, key, module_name, member_name, help, native=True, - deprecated=False, hidden=False, experimental=False): + deprecated=False, hidden=False, experimental=False, alias=False): registry.Registry.register_lazy(self, key, module_name, member_name, help, BzrDirFormatInfo(native, deprecated, hidden, experimental)) + if alias: + self._aliases.add(key) def set_default(self, key): """Set the 'default' key to be a clone of the supplied key. @@ -2518,6 +2532,7 @@ """ registry.Registry.register(self, 'default', self.get(key), self.get_help(key), info=self.get_info(key)) + self._aliases.add('default') def set_default_repository(self, key): """Set the FormatRegistry default and Repository default. @@ -2670,6 +2685,7 @@ tree_format='bzrlib.workingtree.WorkingTreeFormat4', hidden=False, ) +# The following two formats should always just be aliases. format_registry.register_metadir('development', 'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0', help='Current development format. Can convert data to and from pack-0.92 ' @@ -2681,6 +2697,7 @@ branch_format='bzrlib.branch.BzrBranchFormat6', tree_format='bzrlib.workingtree.WorkingTreeFormat4', experimental=True, + alias=True, ) format_registry.register_metadir('development-subtree', 'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0Subtree', @@ -2693,7 +2710,9 @@ branch_format='bzrlib.branch.BzrBranchFormat6', tree_format='bzrlib.workingtree.WorkingTreeFormat4', experimental=True, + alias=True, ) +# And the development formats which the will have aliased one of follow: format_registry.register_metadir('development0', 'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0', help='Trivial rename of pack-0.92 to provide a development format. '
=== modified file 'bzrlib/info.py' --- a/bzrlib/info.py 2007-11-06 09:00:25 +0000 +++ b/bzrlib/info.py 2008-01-06 20:01:30 +0000 @@ -440,7 +440,9 @@ tree.bzrdir.root_transport.base): branch = None repository = None - for key in bzrdir.format_registry.keys(): + non_aliases = set(bzrdir.format_registry.keys()) + non_aliases.difference_update(bzrdir.format_registry.aliases()) + for key in non_aliases: format = bzrdir.format_registry.make_bzrdir(key) if isinstance(format, bzrdir.BzrDirMetaFormat1): if (tree and format.workingtree_format != @@ -457,11 +459,12 @@ candidates.append(key) if len(candidates) == 0: return 'unnamed' - new_candidates = [c for c in candidates if c != 'default'] - if len(new_candidates) > 0: - candidates = new_candidates + candidates.sort() new_candidates = [c for c in candidates if not bzrdir.format_registry.get_info(c).hidden] if len(new_candidates) > 0: + # If there are any non-hidden formats that match, only return those to + # avoid listing hidden formats except when only a hidden format will + # do. candidates = new_candidates return ' or '.join(candidates)
=== modified file 'bzrlib/tests/test_bzrdir.py' --- a/bzrlib/tests/test_bzrdir.py 2007-12-21 20:32:22 +0000 +++ b/bzrlib/tests/test_bzrdir.py 2008-01-06 19:45:00 +0000 @@ -170,6 +170,16 @@ finally: bzrdir.format_registry.set_default_repository(old_default) + def test_aliases(self): + a_registry = bzrdir.BzrDirFormatRegistry() + a_registry.register('weave', bzrdir.BzrDirFormat6, + 'Pre-0.8 format. Slower and does not support checkouts or shared' + ' repositories', deprecated=True) + a_registry.register('weavealias', bzrdir.BzrDirFormat6, + 'Pre-0.8 format. Slower and does not support checkouts or shared' + ' repositories', deprecated=True, alias=True) + self.assertEqual(frozenset(['weavealias']), a_registry.aliases()) + class SampleBranch(bzrlib.branch.Branch): """A dummy branch for guess what, dummy use."""
=== modified file 'bzrlib/tests/test_info.py' --- a/bzrlib/tests/test_info.py 2007-11-26 13:55:51 +0000 +++ b/bzrlib/tests/test_info.py 2008-01-06 20:02:10 +0000 @@ -126,16 +126,22 @@ def test_describe_tree_format(self): for key in bzrdir.format_registry.keys(): - if key == 'default': + if key in bzrdir.format_registry.aliases(): continue self.assertTreeDescription(key) def test_describe_checkout_format(self): for key in bzrdir.format_registry.keys(): - if key in ('default', 'weave', 'experimental'): - continue - if key.startswith('experimental-'): - # these are typically hidden or aliases for other formats + if key in bzrdir.format_registry.aliases(): + # Aliases will not describe correctly in the UI because the + # real format is found. + continue + # legacy: weave does not support checkouts + if key == 'weave': + continue + if bzrdir.format_registry.get_info(key).experimental: + # We don't require that experimental formats support checkouts + # or describe correctly in the UI. continue expected = None if key in ('dirstate', 'dirstate-tags', 'dirstate-with-subtree', @@ -149,7 +155,7 @@ def test_describe_branch_format(self): for key in bzrdir.format_registry.keys(): - if key == 'default': + if key in bzrdir.format_registry.aliases(): continue expected = None if key in ('dirstate', 'knit'): @@ -158,7 +164,7 @@ def test_describe_repo_format(self): for key in bzrdir.format_registry.keys(): - if key == 'default': + if key in bzrdir.format_registry.aliases(): continue expected = None if key in ('dirstate', 'knit', 'dirstate-tags'):
|
Robert Collins |
17 years ago
|
 |
|
3152.2.1
|
|
|
Robert Collins |
17 years ago
|
 |
|
3152
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3151
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3150
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3149
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3148
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3147
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3146
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3145
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3144
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3143
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3142
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3141
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3140
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3139
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3138
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3137
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3136
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|
3135
|
|
|
Canonical.com Patch ... |
17 years ago
|
 |
|