Category Archives: VCS

The problem with depending on a server

So here at iola we use subversion internally. It’s ridiculus that the following use case doesn’t work:

<do stuff>

svn commit

<do stuff>

svn commit

<I forgot what I had written in last commit log>

svn log (local copy out of date, only shows revision before the first commit)

svn update

svn: Working copy ‘.’ locked
svn: run ‘svn cleanup’ to remove locks (type ‘svn help cleanup’ for details)

Owned 🙁

Bzr kicks gits ass

So I’ve been known to rant about bzr before. I got a new machine recently and it came to my attention that it quite a pain to keep two local bazaar branches in sync. So I thought I would have a look at the new breed of revision control systems: git and bzr.

My first preference was git, mainly because of what I said in my rant post. So I installed it and got my arch repository imported. I then tried to see how it handled merging of two branches. To be fair the branches have diverted quite a lot but the change was extremely simple: two identical po files where one of them has been updated. It completely fall flat on its face and I had to manually merge the changes. It also failed to find a merge point between the two revisions so I had to cherry pick changes by hand. After some more testing I tried to merge my local repo to the mms mirror using ftp. Sadly ftp is not supported so that was kind of the last drop that made me think twice about trying out bzr.

So I installed bzr, made it import my two branches and went to sleep (it takes a long time since it takes all my 1000+ changes). After I woke up I played around with the different commands. It’s really a pleasure to work with the system. I guess the clean start was a very good thing. Every command just work like you think they do, you don’t have to use a lot of time learning the system. E.g. when you want to mirror an archive you just do bzr push sftp://somewhere. It will automatically remember that location and just use that path the next time you push. So far it has been working great and I even put all of my cxfe patches into a repo since it’s just so damn easy. It handled the arch import with grace and I have been able to pick of where I left in baz. It can merge the two branches without and problem. The only small bug I have hit so far has been that it won’t work if your ftp server doesn’t support renaming (sunsite doesn’t) but at least it has been confirmed and added to their bug db so there is hope that it will get fixed.

bazaar rant

So arch has had two major implementations: tla and bazaar. Bazaar was a fork of tla and for a while was actively maintained by Cannonical. That was until they decided that the future was in bzr. That’s their right, but it left the users with a big void. Tla was not really maintained anymore since everyone was more or less using bazaar and bzr was not nearly stable enough to put your sensitive data into. It was still changing repository format 😉

Furthermore it causes big problems for distributions when upstream just suddenly disappears. What happens when critical external libraries are updated in a non-compatible way (libneon anyone?) with no way to SLOT them.

Luckily someone has picked up tla again and it is slowly putting out releases again, but bazaar is completely dead. I tried contacting the former maintainer but he doesn’t even respond to emails anymore it seems.

I have updated my free software patches page with the patches from Gentoo. It might come in handy for other people.

So what’s the future? bzr, git? I don’t know, but I don’t have a lot of faith in Cannonical with the bazaar stunt they pulled.