[MERGE][Bug #105432] how to create a working tree? add"create-tree" alias to "checkout"

Martin Pool mbp at sourcefrog.net
Mon Sep 3 09:02:55 BST 2007


I'm concerned about command proliferation too, but on the whole
positive about this addition.

At the heart of this there is an operation
bzrdir.create_workingtree().  I think as an api this is fine: there
really is an object called a workingtree, and you can create them
within a bzrdir.  The question is how to expose it on the commandline.
 The options are:

 1. create-tree: have a command which directly corresponds to this
 2. checkout: pun it with another command like checkout that does this
operation but sometimes does other things
 3. convert: construe it as part of a larger set of operations that
all alter the contents of a bzrdir
 3a init --tree: there's already a larger "create control component"
command.  But on the other hand there is init-repo, not "init --repo".

#1 links to a $verb-$noun naming pattern - create-repository,
create-branch, etc.  Or mktree, as clearcase and Aegis(?) uses.
#2 seems a bit like we're making things unclear just to reduce command
count.  This is not really a minor variation of checkout in the user's
model.
#3 raises the question of whether we want users to think "there are
three components which can be under a bzr dir" or "a bzrdir can be of
several types."  The former is closer to how it really works in Bazaar
so it may be better for the ui to match.

I agree we shouldn't add (non-hidden) commands if we intend to remove
them again soon.

I think this should probably go in...
-- 
Martin



More information about the bazaar mailing list