I spent a little bit of time mucking around with some Bazaar plugin ideas I’ve had.

The first is a command that switches from “branches and trees together inside a shared repository” to “treeless repository with lightweight checkouts”. I ran it against a couple of my local repositories and it works out rather nicely. If you are thinking of using cbranch and the like, you should have a look at this plugin. If you don’t know why it’s a good idea, well, umm, maybe one of the other people on the Planet will blog an answer.

The second adds ‘bzr new’ to the command list.
\$ bzr new awesomer

will create a new shared repository called ‘awesomer’ and a new branch in that repository called ‘trunk’. If you think trunk is a terrible name, you can do:
\$ bzr new awesomer devel

If you are like Tim or Aaron, you’ll want your repository and branches separated from your working tree:
\$ bzr —repository \~/repos/foo foo devel

I’d like to figure out a nice way of letting users specify a default directory for repositories to go into, for those people who always use the split model.

The plugin with both of these commands can be found at\~jml/+junk/bzr-establish. As the “junk” in the name indicates, it’s really rough code.

If either of these features sound like good ideas to you, let me know!