**Parts of this HOWTO are work in progress.** ===== READ HERE FIRST ===== This howto is currently a **lie**, it doesn't work, because of [[http://bugs.launchpad.net/bzr-git/+bug/719238|this bug]]. ===== Introduction ===== [[http://launchpad.net|Launchpad]] only supports [[http://bazaar.canonical.com/|Bazaar]] as content versioning tool, and presumably always will since [[http://www.canonical.com|Canonical]], the company behind both, wants to push its usage. Lots of people prefer [[http://git-scm.com|Git]] as content versioning tool. I am one of those. However, Launchpad does offer other very nice features, such as the [[https://translations.launchpad.net|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?)