Parts of this HOWTO are work in progress.
READ HERE FIRST
This howto is currently a lie, it doesn't work, because of this bug.
Introduction
Launchpad only supports Bazaar as content versioning tool, and presumably always will since Canonical, the company behind both, wants to push its usage.
Lots of people prefer Git as content versioning tool. I am one of those. However, Launchpad does offer other very nice features, such as the localization system which can automatically push contributors-translated strings into your repo.
So it is natural to ask: is it possible to use Launchpad with git? Or even better: is it possible to migrate an already existing bzr branch pushed on bazaaar to git?
Quick remark: in many places it is suggested to just use the fastimport method: it's OK for a one-time migration, but not to represent a durable two-ways bridge!
Yes, it is possible
Thanks to bzr-git (package bzr-git in Debian/Ubuntu).
Let's assume you have a bzr branch in “~/bzr_branch” and you want to work in a git repo at “~/git_repo”. Once you have bzr-git installed, just
- mkdir ~/git_repo
- cd ~/git_repo
- git init
- cd ~/bzr_branch
- bzr push ~/git_repo
- cd ~/git_repo
- git checkout
Edit the file ~/bzr_branch/.bzr/branch/branch.conf, which should look like the following:
parent_location = ../git_repo push_location = bzr+ssh://your_lp_id@bazaar.launchpad.net/the/branch/path
(“the/branch/path” is usually “~your_lp_id/project_name/branch_name”).
Now you can work in your git repo as you love to. When you want to push changes to Launchpad, just
- cd ~/bzr_branch
- bzr pull
- bzr push
TODO
- verify that merging in changes from Launchpad is similarly easy
- verify which quantity of magic can be done with git hooks
- verify how bzr-git behaves with respect to branches (does it pulled master? or checked one?)