RFC: default to creating a repository directory during branch/init.

Robert Collins robert.collins at canonical.com
Wed Apr 8 12:29:48 BST 2009


Currently, one of the major usability problems we have is that it is
hard to setup an efficient work area for large C style programs - that
is one where you switch between branches rather than just making a new
branch on disk.

We explicitly create branches for:
 - init
 - branch

and implicitly for:
 - push
 - export-loom

If we changed 'bzr init foo' to create a shared repository automatically
when one isn't present - like so:
$ls

$ bzr init foo
$ ls -a foo
.
..
.bzr
trunk/

And similarly for branch
$ bzr branch http://bazaar-vcs.org/bzr/bzr.dev
$ ls
bzr
$ ls -a bzr
.
..
.bzr
bzr.dev

push should do the same thing.

When branches are being made stacked, it shouldn't make a shared
repository to meet the current constraints and logic on reusing shared
repositories.

Possible caveats:
'version /etc' and other use cases require initing a branch on an
existing directory. I propose to meet this by saying that when init
finds an existing directory, it create it inline like it does today.

This approach changes the UI for init/branch/push. But it also fixes
some bugs: people wanting a shared repo don't know what format to
create, creating a repo is non-trivial.

There are other approaches we could take, such as colocated branches. I
see this as a reasonable thing to do that does not preclude such steps
being taken later.

-Rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090408/c8178690/attachment.pgp 


More information about the bazaar mailing list