[vos-d] vos CVS locked, migrating to bzr

Peter Amstutz tetron at interreality.org
Fri May 12 01:31:59 EDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've locked the CVS repository to prevent any commits and am in the 
process of migrating source control to bzr.  I'll be posting documentation 
on how to use bzr in a few days when everything is sorted out.  Also I am 
going to write scripts that will automate the entire 
download-configure-compile cycle, so it should be possible to start with a 
single tiny shell script and issue a single command and (ideally) have it 
fetch and build the latest versions of all of VOS with no user 
intervention.

BZR has many compelling advantages over CVS/SVN.  The main ones for us 
are:

  - Local branching: you can make a branch from the repository to work on, 
keep your changes in local revision control and then merge and push them 
into the trunk.  This makes it much easier to work on major changes to the 
tree (which may not be ready to merge into the trunk for days or weeks) or 
have several branches for different projects that arn't related.

  - Branches are portable: you can tar up a branch (it's just a directory), 
send it to someone else, they can untar it and start using it (get 
updates, make commits etc) immediately.

  - Anyone can branch: users make a branch on their computer and can start 
working on it without the fear that updating from the trunk will clobber 
their changes

  - Better moving/rename/delete handling (at least that's what Lalo tells 
me, and almost *anything* is going to be better than CVS).

  - It is very easy to host, it just requires an plain http or ftp server 
for read-only access, and provides write access over sftp (ssh).

My overall impression from playing with it and seeing how it works is that 
bzr feels very well designed.  Files are given a globally unique id which 
is used to track it wherever it goes, which means it is not bound to any 
particular server.  The aha! moment for me was when I had deleted a vos 
branch I was playing with and went to do a fresh checkout from the server. 
Bzr knew that it had already downloaded these files into its local 
repository, and so the checkout took only a few seconds -- because it knew 
it already had stored the files.


If need be, we can using a program called "tailor" set up a job that will 
reflect changes in bzr into CVS.  I'd prefer to avoid that, though. 
Rather, what I'm going to do is set up a job that creates a nightly 
tarball of the bzr branch.  People will be able to download this and just 
use it as source checkout, or if they have bzr, be able to use it as a 
basis for getting updates, doing local development, etc.

The main drawbacks with bzr are that a) people don't know it and b) the 
current version is slow.  For (a) I will be writing tutorials on how to 
use it.  Also, for the base case of "I want to download and compile the 
latest version of VOS" I am going to provide shell scripts which handle 
the entire process from checkout to configure to compile, so new users 
won't even need to use bzr beyond installing it.  For (b), performance is 
really only a problem for checkouts (which do take much longer than the 
equivalent CVS checkout); the developers of bzr are working to rectify 
this problem in the next versions.  We can get around this issue by having 
people download branch snapshots.  As I stated, bzr branches are portable, 
you can move them around from place to place and system to system very 
easily.

I hope to have the migration and new build tree ready this weekend, so 
we'll be able to get on with actual new development.

[   Peter Amstutz   ][ tetron at interreality.org ][ piamstutz at anteon.com  ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEZB3UaeHUyhjCHfcRAvXnAJ0Xhujm+JgIkJ3y5fARqWTDTtDytQCffYAY
/m5yM0ZsmLArXsExbVwMr3o=
=3EsU
-----END PGP SIGNATURE-----




More information about the vos-d mailing list