Most usually, I’m a very organized person. Even before I was programming (when I was making Hero Quest maps in Q&A and WordPerfect) I would still want periodic backups of my data. Given all that, I’ve remained remarkably oblivious of Version Control for quite a long time. Here’s an overview of my VCS history:
- 1990 – 1992 Derp derp, playing Commander Keen and friends.
- 1992 – 2003 Copy-paste-style backups, periodically.
- 2003 – 2005 Visual Sourcesafe. The horror…
- 2005 – current SVN and TortoiseSVN. Much better!
- 2011 – current Mercurial (with TortoiseHg), and a dash of Git.
On a coding project with friends, one of them suggested we’d use one of the DCVS systems: either Hg or Git. After a short debate (and after reading endless flamewars between the two) we decided on trying Hg. My “re-education” started with reading the HgInit tutorial by Joel Spolsky. Here’s a quote that stuck with me:
It turns out that if you’ve been using Subversion, your brain is a little bit, um, how can I say this politely? You’re brain damaged. No, that’s not polite. You need a little re-education.
True as it is.
To be honest though: I still don’t mind using SVN. At work we have an existing repository from which we’ll probably not be switching, and it even has some advantages over Hg. However, for any new project I would choose a DCVS, either Git or Hg, depending on the circumstances.
So for my latest pet project I’ve started a Hg repository as well. So far I’ve just been committing locally, using it as a backup and history mechanism. However, with friends and family joining on the project I will probably be moving the repository to an Open Source Hosting Provider. There’s a few that came to mind, and I’m currently considering four of them. Even though there’s a decent Wikipedia comparison article, I still decided to make my own comparison table with features I find interesting:
|Source Control||Hg, Git, SVN||Hg, Git||Hg, Git, SVN, TFS||Hg, Git, SVN|
|Wiki||MoinMoin-based markdown||Creole-based markdown||Yes||Daring Fireball-based markdown|
|Licenses||Any, single-licensed||?||10 OS licenses available||Any OS license|
|Authentication||Google Account||Bitbucket account||Codeplex + optional Win. Live||SourceForge account|
Currently I’m leaning somewhat towards CodePlex, for no particular reason or rationale. Or perhaps I’ll end up trying them all before deciding. Either way, I’ll sleep another night on it, for now.