Using bazaar on toucan (and bzr push!)

Preamble: this entry is mainly oriented to Gentoo developers who wants to use bazaar on their devspace on (toucan). I hope nobody gets angry because of that.
I won’t try to explain how bazaar works as I haven’t use it before today, and was guided by Brian to use it, I’ll just try to simply explain how I configured it to make use of bzr push command to put the stuff. It’s sort of an hack, but it works.

First of all, with bzr 0.6 you don’t have bzr push in the default command set, instead you need bzrtools, too.
After emerging it, edit the file /usr/lib/python2.4/site-packages/bzrlib/plugins/bzrtools/, at line 227 add to the rsync() call ssh=True parameter. This is the hacky part, we have to force rsync to use ssh instead of looking for an rsync daemon, as there’s no rsync daemon on toucan.

Then it comes to the configuration. If you try to access rsync now, you’ll get errors because it can’t find rsyncd.conf and a series of other errors. Create then a new file on your home on toucan called rsyncd.conf and configure it this way:

use chroot = no

path = /home/username/public_html/bzr
comment = user's Bazaar repositories
read only = no

the parts in italic are the ones that has to be changed and can be changed, the first identifies the module to use, the second the path, the third the name. The third can actually be skipped, probably. It’s important to disable chroot (as it won’t work not being root), and to enable write access as bzr push has to write.

Then when you want to push the things you just do

bzr push rsync://

Et voil