Why bzr is clearly better than svk

We chose subversion for maemo code repository for a couple of reasons. One was that we’re already using it internally so we can continue using the same tools, but more importantly it’s sufficiently similar to all CVS users so there’s no huge learning curve for anyone interested in having their hands on bleeding edge code.

However, having used tla for Galeon development I’m already missing the simple way of doing merges. And bzr is on its way to make things even better. With subversion branching may be cheap, but repeated merges will conflict. To that end I thought to give svk a try. Well I didn’t even get as far as actually running it before getting the feeling it’s just not going to get far off compared to bzr.

Two reasons why I think bzr is much more likely to gain significant momentum outside its core development team:

First, bzr (or any other coming from arch heritage) doesn’t come even close to having the insane amount of dependencies svk does:

tla: libc6 (>= 2.3.2.ds1-21), libneon24 (>= 0.24.7.dfsg), diff (>= 2.8.1), patch (>= 2.5.9), gawk
baz: libc6 (>= 2.3.2.ds1-21), libgpgme11 (>= 1.0.1), libneon24 (>= 0.24.7.dfsg), libssl0.9.7, diff (>= 2.8.1), patch (>= 2.5.9), gawk
bzr: python (>= 2.3), python2.3, python (
svk: perl (>= 5.6.0-16), libalgorithm-annotate-perl, libalgorithm-diff-perl, libclass-autouse-perl (>= 1.15), libclone-perl, libcompress-zlib-perl, libdata-hierarchy-perl (>= 0.21), libfile-type-perl, libfreezethaw-perl, libio-digest-perl, libio-string-perl, liblocale-maketext-lexicon-perl (>= 0.42), liblocale-maketext-simple-perl, libperlio-eol-perl, libperlio-via-dynamic-perl (>= 0.11), libperlio-via-symlink-perl, libpod-simple-perl, libregexp-shellish-perl, libsvn-core-perl (>= 1.0.7), libsvn-mirror-perl (>= 0.65), libsvn-simple-perl (>= 0.27), libtext-diff-perl, libtimedate-perl, libyaml-perl (>= 0.38)

Sure, on up-to-date Debian unstable or other decent distribution the dependencies are not really an issue since someone else has already gone through the trouble and kindly made them easily available. But just try to install svk on redhat9 or similar. (And for those advocating CPAN: tests are failing or hanging; can’t install as non-root, even after following the instructions something still insists on installing stuff in /usr/bin…)

So much for taking svk for a quick spin.

Second, bzr is written in python, svk in line noiseperl.

I did, eventually, manage to get svk installed so maybe one day I’ll manage to try to do something practical with it.