It’s difficult to resist giving a try to Git or Mercurial these days, and I decided to start moving the code of my personal projects to DVCS. I’ve chosen Bitbucket as a remote storage for my repositories. It seems to have very good reputation, and it’s subscription plans include a free plan for a single private repository (up to 1 GB) with upgrades starting as low as $5 a month.
I am just making my first steps with Mercurial, so I read Joel Spolsky’s Hg Init introduction, but Bitbucket also contains guidelines that make setting up repository a simple excercise.
It’s easy enough to manage source control using Hg commands, but TortoiseHg installs a Windows shell extension that turns Windows Explorer into a source control management tool.
And finally, for those spoilt by Visual Studio source control integration, VisualHG is a Mercurial plug-in for Visual Studio.
I installed all of the above packages and was surprised how quickly I was up and running my source against remote Mercurial repository at Bitbucket. And I definitely enjoy the experience. Comparing to TFS I like the mobile nature of my local sources. Like every centralized version control system, TFS prefers its users to be connected. You can bring your projects offline, but this is considered to be a temporary state. As soon as you can connect to TFS, you are supposed to do it so it can synchronize your changes. Distributed version control systems have different phylosophy, there are no connected and disconnected users, and you can work and commit your changes locally and only push them to a remote repository for planned release or synchronization.
One thing for sure: no more source control at home. In 1993 I bought a Microsoft Delta license for my personal use. Later I upgraded it to SourceSafe (at that time not yet “Visual”). All this time I had source code repository on one of my home machines. No more. “hg push” command will make Bitbucket take care of my source.