I was thinking the other day about how many version control systems I’ve made my way through over the years of being a professional developer, and I figured it would be fun to put it in graph form. Of course, this is entirely from memory and gives the illusion of being more empirical than it actually is, but hey, everyone loves graphs, right? Yes, I really didn’t use any source control back in 1994, barring backing up to 3.
As you know I’ve been reviewing DVCSs lately. I’m taking my time doing real use cases on them, and deliberately not doing the sort of feet-first leap into whatever looks best / most popular on the surface because I don’t particularly want to discover unexpected problems down the track. It’s consuming a lot more time than I expected - I’m writing up my findings and may publish the entire results later on if I can find the time to clean them up and format them better, but for the moment I thought I’d share some experiences with the conversion process of a relatively large, long-lived, multi-branch repository (OGRE) from Subversion to Git and Mercurial, because that’s what I’ve been wrestling with in the last few days.
Bah. I’ve used svnmerge for ages to meet my Subversion merging needs, but a change around property management in Subversion 1.6 makes it no longer work anymore. Yes, I know Subversion has had its own merging features since 1.5, but I still use svnmerge because it works well, it generates me detailed merge commit messages, and it doesn’t require me to upgrade all my repositories to use it. Sourceforge was on Subversion 1.