Until now I have been using Subversion for my source code management. To avoid using the command line tools I also used VisualSVN and TortoiseSVN which provide an easier user interface for usage with Visual Studio and the Windows Explorer respectively.
After using this setup for some time I have decided that it sucks. I often wait a couple of weeks before checking in my latest batch of changes (yes, I know I should probably do this every day). You can bet that checking in will give some weird problem with an error message that is almost useful but not quite. Then you spend what feels like forever trying to work out the reason. And every time it turns out to be something different.
This is before mentioning the vast annoyance that is the overlay icons. The idea of the TortoiseSVN shell extension is that you get nice add/remove/unchanged style icon overlays when looking at your files. So you can easily see what has changed. Do they work? Not really. Most of the time they are correct but sometimes they are just plain wrong. I don’t like looking at the icons and knowing they might be lying to me.
So I’ve dumped Subversion. I know that some of you are going to point out you have used it with success for several years and the problem is the operator. You’re quite right but I am still dumping it and trying out something different.
Mercurial for Windows
The latest fad in source code control is the use of distributed systems such as Git, Mercurial and Bazaar. So I’ve jumped on the bandwagon and opted to give Mercurial a chance. The download at TortoiseHG comes with Mercurial and the TortoiseHG shell extensions in a single installer. I only started using it a few days ago but so far it has been very simple and easy to use. Even the icon overlays have been correct so far.