Bazaar Demo Machine
In order to aid in testing Bazaar for use with GNOME, we have set up a test machine where any GNOME hacker can try out the Bazaar workflow. Any hacker with subversion access should be able to access the machine using the same SSH key.
SSH Setup
If your GNOME user name differs from your local user name, you will need to edit ~/.ssh/config to add a stanza like:
Host bzr-playground.gnome.org User username
If your user name differs, you will need to set the GNOME_USER environment variable for some scripts to function correctly:
export GNOME_USER=username
If everything is sorted, you should be able to execute bzr on the server:
$ ssh bzr-playground.gnome.org bzr rocks It sure does!
Install Bazaar
To test our Bazaar, you will need to install it on your machine. Instructions for installing it on various distributions can be found here. You will need at least Bazaar 1.0, but later versions are preferred. For best performance, install 1.6b2.
Before making any commits, you should tell Bazaar what user ID to use. Traditionally an email address is used for this:
$ bzr whoami "Fred Smith <fred@example.com>"
Grabbing a module
A helper script is available to help set up a Bazaar working environment locally. You can grab it with:
scp bzr-playground.gnome.org:~jamesh/bzr-gnome-setup.py .
You can then check out a branch with e.g.:
./bzr-gnome-setup.py module [branch-name]
If no branch name is provided, the name "devel" will be used. The script will do the following:
Create a repository at ~/gnome-bzr/repos/$module.
Create a branch under ~/gnome-bzr/repos/$module/$branch.
A working tree will be created under ~/gnome-bzr/src/$module for the new branch.
A matching repository will be created on bzr-playground.gnome.org for you to push your changes to.
Bazaar will be configured to push the branch to bzr-playground.gnome.org by default.
The files in ~/gnome-bzr/repos represent the local branch data, while the
So we can create a branch of Sound Juicer with:
$ ./bzr-gnome-setup.py sound-juicer $ cd ~/gnome-bzr/src/sound-juicer
You can then make your changes and commit them. The changes can be pushed to bzr-playground.gnome.org with the bzr push command. Your branches can then be browsed through the web at http://bzr-playground.gnome.org/$user.
GUADEC
Due to the unreliable internet at the conference venue, we have set up a local box for use by GUADEC participants. If you are at GUADEC, you can use the local machine by setting the following environment variable:
$ export GNOME_BZR_PLAYGROUND_HOST=bzr-guadec.gnome.org
We will migrate branches created on this machine at the close of the conference. This may overwrite branches of the same name though.
Further Work
The bzr-gnome-setup.py script provides a suggested layout and workflow for using Bazaar, but others are possible. The tutorial and users guide are good places to start.
