Launchpad is, so far, my preferred code-hosting service. It surely could use a better, more 'compact' design, like
Github, but I like the focus that lp gives to projects and teams, and its integration with
Bazaar.
Here I describe the workflow I think that works best for me when using Launchpad and Bazaar.
Launchpad uses
stacked branches so each branch don't need to store the whole history of the project . Locally, if we want to work with various branches, we can use a shared repository, assuming that the project have a "trunk", or main branch.
Start by creating the repo:
bzr init-repo PROJECT
cd PROJECT
Get the project's main branch:
bzr branch lp:PROJECT trunk
Get any other branch you may want to work with:
bzr branch lp:OTHERBRANCH
Derive your own branches, from trunk for example, to work on some task:
bzr branch trunk mybranch
Another option is to work with stacked branches. I don't see many advantages to work with locally compared with shared repositories, but lets imagine that you already have a standalone branch for that big project that you wanted to take a look at, and suddenly you see yourself wanting to hack it! You can do it on a stacked branch:
bzr branch PROJECT mybranch --stacked
'mybranch' will be 'stacked' on 'PROJECT'. Lets say that PROJECT was at revision 42: any time you want to work with a revision (check the log or diff, for example) older then 42.1, bazaar will look for the revision info on the PROJECT branch.
Also read:
Choosing a shared repository layout.
How do
you work with Launchpad? And if you use other service (eg. Github, Bitbucket), how do you organise multiples branches locally?