Version control is the best thing since sliced bread (for those whom have just learnt of it). But once branching comes into the picture, it is becomes a hairy thing.

It might be because humans aren’t accustomed to think in terms of parallel universe (perhaps sci-fi authors). There appears to have no "one right way" to cater for all scenarios. I used to live and breath on the trunk-is-stable-and-latest camp (half sneering at enterprisey people who ’branch first, then merge’). But it just happens that my past situations only requires so much.

Furthermore, some people just prefer the branch-merge-often mentality, others thrive in simplicity of trunk-work-branch-maintain workflow. Like tea people and coffee people. Just different. No point converting anyone over to the other side. Hence I was dabbling to create a script (on-top-of svnmerge) to provide dead-simple branch/merge workflow - so trunk ppl can have it so, and branch ppl won’t be inconvenienced.

That’s when I found SVK. By saying its a "decentralized version control system built with the Subversion filesystem" is really really doing it a huge disservice. My layman version would be "SVK lets you be the branch-merge person you are inside, or the trunk-branch, or watever *%^#$ person you like to do your work in - whilst sharing a common repository with people of different taste! I mean, its like a cup that lets you sip coffee, sit around with everyone, whilst sharing the same pot of tea!"

SVK has more commands to do magic, but the daily stuff closely resembles SVN: svk commit; svk update; svk diff. It also has another benefit - it doesn’t pollute your working directory with hidden .svn or CVS folders/files. Some ppl are irked by that. Those files are consolidated in your home directory. Actually that might be good / bad depending on you being a tea or coffee person.

The only drawback is that IDE integration is lacking at the moment. And most importantly, the tickets / changesets information on Trac wouldn’t tally directly with my local mirror.

Oh well, these might not be show stopper after all. Let’s see how it goes when I use it for real.