456
456
return bzrdir.create_workingtree()
458
458
def create_workingtree(self, revision_id=None, from_branch=None,
459
accelerator_tree=None):
459
accelerator_tree=None, hardlink=False):
460
460
"""Create a working tree at this BzrDir.
462
462
:param revision_id: create it as of this revision id.
748
748
def _get_tree_branch(self):
749
749
"""Return the branch and tree, if any, for this bzrdir.
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)
891
891
def sprout(self, url, revision_id=None, force_new_repo=False,
892
892
recurse='down', possible_transports=None,
893
accelerator_tree=None):
893
accelerator_tree=None, hardlink=False):
894
894
"""Create a copy of this bzrdir prepared for use as a new line of
907
907
contents more quickly than the revision tree, i.e. a workingtree.
908
908
The revision tree will be used for cases where accelerator_tree's
909
909
content is different.
910
:param hardlink: If true, hard-link files from accelerator_tree,
911
913
target_transport = get_transport(url, possible_transports)
912
914
target_transport.ensure_base()
951
953
result.create_branch()
952
954
if isinstance(target_transport, LocalTransport) and (
953
955
result_repo is None or result_repo.make_working_trees()):
954
wt = result.create_workingtree(accelerator_tree=accelerator_tree)
956
wt = result.create_workingtree(accelerator_tree=accelerator_tree,
957
960
if wt.path2id('') is None:
1046
1049
raise errors.UnsupportedOperation(self.destroy_repository, self)
1048
1051
def create_workingtree(self, revision_id=None, from_branch=None,
1049
accelerator_tree=None):
1052
accelerator_tree=None, hardlink=False):
1050
1053
"""See BzrDir.create_workingtree."""
1051
1054
# this looks buggy but is not -really-
1052
1055
# because this format creates the workingtree when the bzrdir is
1120
1123
return format.open(self, _found=True)
1122
1125
def sprout(self, url, revision_id=None, force_new_repo=False,
1123
possible_transports=None, accelerator_tree=None):
1126
possible_transports=None, accelerator_tree=None,
1124
1128
"""See BzrDir.sprout()."""
1125
1129
from bzrlib.workingtree import WorkingTreeFormat2
1126
1130
self._make_tail(url)
1230
1235
self.transport.delete_tree('repository')
1232
1237
def create_workingtree(self, revision_id=None, from_branch=None,
1233
accelerator_tree=None):
1238
accelerator_tree=None, hardlink=False):
1234
1239
"""See BzrDir.create_workingtree."""
1235
1240
return self._format.workingtree_format.initialize(
1236
1241
self, revision_id, from_branch=from_branch,
1237
accelerator_tree=accelerator_tree)
1242
accelerator_tree=accelerator_tree, hardlink=hardlink)
1239
1244
def destroy_workingtree(self):
1240
1245
"""See BzrDir.destroy_workingtree."""
1486
1491
mutter('created control directory in ' + transport.base)
1487
1492
control = transport.clone('.bzr')
1488
1493
utf8_files = [('README',
1489
"This is a Bazaar-NG control directory.\n"
1490
"Do not change any files in this directory.\n"),
1494
"This is a Bazaar control directory.\n"
1495
"Do not change any files in this directory.\n"
1496
"See http://bazaar-vcs.org/ for more information about Bazaar.\n"),
1491
1497
('branch-format', self.get_format_string()),
1493
1499
# NB: no need to escape relative paths that are url safe.
2447
2453
e.g. BzrDirMeta1 with weave repository. Also, it's more user-oriented.
2457
"""Create a BzrDirFormatRegistry."""
2458
self._aliases = set()
2459
super(BzrDirFormatRegistry, self).__init__()
2462
"""Return a set of the format names which are aliases."""
2463
return frozenset(self._aliases)
2450
2465
def register_metadir(self, key,
2451
2466
repository_format, help, native=True, deprecated=False,
2452
2467
branch_format=None,
2453
2468
tree_format=None,
2455
experimental=False):
2456
2472
"""Register a metadir subformat.
2458
2474
These all use a BzrDirMetaFormat1 bzrdir, but can be parameterized
2491
2507
bd.repository_format = _load(repository_format)
2493
2509
self.register(key, helper, help, native, deprecated, hidden,
2510
experimental, alias)
2496
2512
def register(self, key, factory, help, native=True, deprecated=False,
2497
hidden=False, experimental=False):
2513
hidden=False, experimental=False, alias=False):
2498
2514
"""Register a BzrDirFormat factory.
2500
2516
The factory must be a callable that takes one parameter: the key.
2503
2519
This function mainly exists to prevent the info object from being
2504
2520
supplied directly.
2506
registry.Registry.register(self, key, factory, help,
2522
registry.Registry.register(self, key, factory, help,
2507
2523
BzrDirFormatInfo(native, deprecated, hidden, experimental))
2525
self._aliases.add(key)
2509
2527
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,
2528
deprecated=False, hidden=False, experimental=False, alias=False):
2529
registry.Registry.register_lazy(self, key, module_name, member_name,
2512
2530
help, BzrDirFormatInfo(native, deprecated, hidden, experimental))
2532
self._aliases.add(key)
2514
2534
def set_default(self, key):
2515
2535
"""Set the 'default' key to be a clone of the supplied key.
2517
2537
This method must be called once and only once.
2519
registry.Registry.register(self, 'default', self.get(key),
2539
registry.Registry.register(self, 'default', self.get(key),
2520
2540
self.get_help(key), info=self.get_info(key))
2541
self._aliases.add('default')
2522
2543
def set_default_repository(self, key):
2523
2544
"""Set the FormatRegistry default and Repository default.
2627
2648
branch_format='bzrlib.branch.BzrBranchFormat6',
2628
2649
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2631
2651
format_registry.register_metadir('dirstate-with-subtree',
2632
2652
'bzrlib.repofmt.knitrepo.RepositoryFormatKnit3',
2635
2655
'bzr branches. Incompatible with bzr < 0.15.',
2636
2656
branch_format='bzrlib.branch.BzrBranchFormat6',
2637
2657
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2640
2661
format_registry.register_metadir('pack-0.92',
2647
2668
'http://doc.bazaar-vcs.org/latest/developers/packrepo.html.',
2648
2669
branch_format='bzrlib.branch.BzrBranchFormat6',
2649
2670
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2652
2672
format_registry.register_metadir('pack-0.92-subtree',
2653
2673
'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack3',
2670
2690
branch_format='bzrlib.branch.BzrBranchFormat6',
2671
2691
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2693
# The following two formats should always just be aliases.
2694
format_registry.register_metadir('development',
2695
'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0',
2696
help='Current development format. Can convert data to and from pack-0.92 '
2697
'(and anything compatible with pack-0.92) format repositories. '
2698
'Repositories in this format can only be read by bzr.dev. '
2700
'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
2702
branch_format='bzrlib.branch.BzrBranchFormat6',
2703
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2707
format_registry.register_metadir('development-subtree',
2708
'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0Subtree',
2709
help='Current development format, subtree variant. Can convert data to and '
2710
'from pack-0.92 (and anything compatible with pack-0.92) format '
2711
'repositories. Repositories in this format can only be read by '
2712
'bzr.dev. Please read '
2713
'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
2715
branch_format='bzrlib.branch.BzrBranchFormat6',
2716
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2720
# And the development formats which the will have aliased one of follow:
2721
format_registry.register_metadir('development0',
2722
'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0',
2723
help='Trivial rename of pack-0.92 to provide a development format. '
2725
'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
2727
branch_format='bzrlib.branch.BzrBranchFormat6',
2728
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2732
format_registry.register_metadir('development0-subtree',
2733
'bzrlib.repofmt.pack_repo.RepositoryFormatPackDevelopment0Subtree',
2734
help='Trivial rename of pack-0.92-subtree to provide a development format. '
2736
'http://doc.bazaar-vcs.org/latest/developers/development-repo.html '
2738
branch_format='bzrlib.branch.BzrBranchFormat6',
2739
tree_format='bzrlib.workingtree.WorkingTreeFormat4',
2673
2741
experimental=True,
2675
2743
format_registry.set_default('pack-0.92')