Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Giving Back

One of the fun things about working on a version control system like Bazaar is that the userbase has a high level of proficiency in contributing back into the tool. So, how does one contribute code back into Bazaar?

Making the change

Any contributions should be developed against the current development version of Bazaar.

First, get a local copy of the development mainline (See Why make a local copy of

$ bzr init-repo ~/bzr
$ cd ~/bzr
$ bzr branch lp:bzr

You may wish to consider using this copy of Bazaar. See Installation for details.

Now make your own branch:

$ bzr branch suitable_name_for_your_change

The last argument is the name for your branch, try to give it a descriptive name saying what you are changing. In this new branch you can study the code, make a fix or a new feature. Feel free to commit early and often (after all, it's your branch!).

Please see the Bazaar Developer Guide for hints and style suggestions. Documentation improvements are an easy place to get started giving back to the Bazaar project. The documentation is in the doc/ subdirectory of the Bazaar source tree.

When you are done, make sure that you commit your last set of changes as well! Once you are happy with your changes, ask for them to be merged, as described below.

Making a Merge Proposal

The Bazaar developers use Launchpad to further enable a truly distributed style of development. Anyone can propose a branch for merging into the Bazaar trunk. To do so, after you have committed your last set of changes, you need to push your branch to Launchpad. To do this, you will need a Launchpad account and user name, e.g. your_lp_username. You can push your branch to Launchpad directly from Bazaar:

$ bzr push lp:~your_lp_username/bzr/suitable_name_for_your_change

After you have pushed your branch, you will need to propose it for merging to the Bazaar trunk. Go to and choose "Propose for merging into another branch". Select "bzr:trunk" to hand your changes off to the Bazaar developers for review and merging.

Why make a local copy of

Making a local mirror of is not strictly necessary, but it means

  • You can use that copy of as your main bzr executable, and keep it up-to-date using bzr pull.

  • Certain operations are faster, and can be done when offline. For example:

    • bzr bundle
    • bzr diff -r ancestor:...
    • bzr merge
  • When it's time to create your next branch, it's more convenient. When you have further contributions to make, you should do them in their own branch:

    $ cd ~/bzr
    $ bzr branch additional_fixes
    $ cd additional_fixes #hack, hack, hack