2294
2294
class BzrDirFormatInfo(object):
2296
def __init__(self, native, deprecated, hidden):
2296
def __init__(self, native, deprecated, hidden, experimental):
2297
2297
self.deprecated = deprecated
2298
2298
self.native = native
2299
2299
self.hidden = hidden
2300
self.experimental = experimental
2302
2303
class BzrDirFormatRegistry(registry.Registry):
2310
2311
repository_format, help, native=True, deprecated=False,
2311
2312
branch_format=None,
2312
2313
tree_format=None,
2315
experimental=False):
2314
2316
"""Register a metadir subformat.
2316
2318
These all use a BzrDirMetaFormat1 bzrdir, but can be parameterized
2348
2350
if repository_format is not None:
2349
2351
bd.repository_format = _load(repository_format)
2351
self.register(key, helper, help, native, deprecated, hidden)
2353
self.register(key, helper, help, native, deprecated, hidden,
2353
2356
def register(self, key, factory, help, native=True, deprecated=False,
2357
hidden=False, experimental=False):
2355
2358
"""Register a BzrDirFormat factory.
2357
2360
The factory must be a callable that takes one parameter: the key.
2361
2364
supplied directly.
2363
2366
registry.Registry.register(self, key, factory, help,
2364
BzrDirFormatInfo(native, deprecated, hidden))
2367
BzrDirFormatInfo(native, deprecated, hidden, experimental))
2366
2369
def register_lazy(self, key, module_name, member_name, help, native=True,
2367
deprecated=False, hidden=False):
2370
deprecated=False, hidden=False, experimental=False):
2368
2371
registry.Registry.register_lazy(self, key, module_name, member_name,
2369
help, BzrDirFormatInfo(native, deprecated, hidden))
2372
help, BzrDirFormatInfo(native, deprecated, hidden, experimental))
2371
2374
def set_default(self, key):
2372
2375
"""Set the 'default' key to be a clone of the supplied key.
2419
2422
output += wrapped(default_realkey, '(default) %s' % default_help,
2420
2423
self.get_info('default'))
2421
2424
deprecated_pairs = []
2425
experimental_pairs = []
2422
2426
for key, help in help_pairs:
2423
2427
info = self.get_info(key)
2424
2428
if info.hidden:
2426
2430
elif info.deprecated:
2427
2431
deprecated_pairs.append((key, help))
2432
elif info.experimental:
2433
experimental_pairs.append((key, help))
2429
2435
output += wrapped(key, help, info)
2436
if len(experimental_pairs) > 0:
2437
output += "Experimental formats are shown below.\n\n"
2438
for key, help in experimental_pairs:
2439
info = self.get_info(key)
2440
output += wrapped(key, help, info)
2430
2441
if len(deprecated_pairs) > 0:
2431
2442
output += "Deprecated formats are shown below.\n\n"
2432
2443
for key, help in deprecated_pairs:
2478
2489
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2481
format_registry.register_metadir('experimental',
2492
format_registry.register_metadir('knitpack-experimental',
2482
2493
'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack1',
2483
help='New in XXX: Experimental format with data compatible with dirstate '
2484
'format repositories. Cannot be read except with bzr.dev. '
2485
'WARNING: This format is unstable and data in it will not be upgradable'
2486
' to release formats of bzr.',
2494
help='New in 0.92: Pack-based format with data compatible with '
2495
'dirstate-tags format repositories. Interoperates with '
2496
'bzr repositories before 0.92 but cannot be read by bzr < 0.92. '
2497
'NOTE: This format is experimental. Before using it, please read '
2498
'http://doc.bazaar-vcs.org/latest/developers/knitpack.html.',
2487
2499
branch_format='bzrlib.branch.BzrBranchFormat6',
2488
2500
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2491
format_registry.register_metadir('experimental-subtree',
2503
format_registry.register_metadir('knitpack-subtree-experimental',
2492
2504
'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack3',
2493
help='New in XXX: Experimental format with data compatible with '
2494
'dirstate-with-subtree format repositories. Cannot be read except with'
2495
' bzr.dev. WARNING: This format is unstable and data in it will not be'
2496
' upgradable to release formats of bzr.',
2505
help='New in 0.92: Pack-based format with data compatible with '
2506
'dirstate-with-subtree format repositories. Interoperates with '
2507
'bzr repositories before 0.92 but cannot be read by bzr < 0.92. '
2508
'NOTE: This format is experimental. Before using it, please read '
2509
'http://doc.bazaar-vcs.org/latest/developers/knitpack.html.',
2497
2510
branch_format='bzrlib.branch.BzrBranchFormat6',
2498
2511
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2501
2515
format_registry.set_default('dirstate-tags')