intertwingly

It’s just data

bzr


Just when I was just starting to get comfortable with svn, along comes bzr.

svn has a lot of benefits over cvs.  For me, the biggest benefit is the increased ability to work on a plane  I can do an svn delete or an svn diff while disconnected.  When I land, I can simply do an svn update and an svn commit.

It looks like bzr intends to take this to the next level,  I can work on multiple changes, create branches, and query the version history while offline.

installation

At the moment, it appears that the online documentation is out of synch (ahead of!) the working code.

My development is on Ubuntu.  I’m currently running Breezy.  Version 0.1.1 is available in that distribution via:

sudo apt-get install bzr

Dapper has  0.7.0-2, which Breezy users can get by adding the following to /etc/apt/sources.list:

deb http://mouth.voxel.net/~dilinger/bzr/breezy/ ./

And then doing:

apt-get update
apt-get install bzr

usage

It appears that the next version will have a number of command alias that are more familiar to cvs/svn users, but for the meanwhile, the following works:

bzr get http://www.gnome.org/~jdub/bzr/planet/devel/trunk/ planet

If I then cd into the planet directory, I can then do:

bzr merge

The response is a satisfying “Nothing to do”.  I can then proceed to make arbitrary changes to any source file and commit the changes.  No permission necessary.

deployment

This is where it gets mind-blowing.  After I am done development on my laptop, I can then simply scp/rsync my entire directory structure up to intertwingly.  I can then run from my directory.  That’s not the surprising part.  That’s entirely to be expected.

What’s cool is that I — or anybody else — can then do a bzr get against that directory to retrieve everything - including the version history.  And I had to install nothing to make this work.  It is all HTTP GET of statically served files.  Sweet.

In lieu of posting patches to the development list, I can simply post a pointer to my repository, perhaps with some prose indicating why anybody might care.  Maintainers of other repositories may chose to merge in a portion of my changes, or they may not.

This style of development, with a low barrier to entry, is not for everyone.  In fact, I’m not yet sure that it is for me.  But it certainly has got me thinking.