This is a quick related to my employer and day-job, Ebuyer.
They started using Subversion (SVN) for version control many moons ago, quickly found that it was lacking when it came to merging support. They then used SVK, or at least they did until today.
SVK is built on SVN but has better support for merging. I’m a bit light on details, but I gather that it does this by storing a stack of the merges that have been made on a branch in a local depot to make sure that they aren’t made again. This works well, but it means that after several years of use the local depots get large and the whole thing grinds halt.
You see, SVK, SVN and even Concurrent Versions System (CVS) are based on the same paradigm and neither is a revolutionary leap on its predecessor.
Enter the next generation of VCS: Git, Mercurial and Bazaar (bzr).
These VCS systems offer new features such as fully decentralised version control – the idea of the central repository is gone. More importantly they use a completely different underlying architecture – a Directed Acyclic Graph (DAG), here’s a good explanation of the DAG in relation to GIT if you’re interested.
Anyway, Ebuyer’s VCS guru evaluated all the options and decided that bzr (bazaar) was the best option. They spent an amount of time migrating the cleansing the old SVN data and migrated what was left to bzr.
Today was the big day, and it went really rather well. Everything Just Worked. The best thing for us is that it has a powerful plugin architecture so you can extend the default functionality really easily to customise it for your own setup. Add into that the various workflows supported and you’re laughing.
Once I’ve seen how it beds in I think that I will look at migrating the Floating Frog projects to it because even we’ve had various merge conflicts on our small projects which might be made better by bzr.