Thursday, June 17, 2010

Distributed Version Control

Like many other software houses, we in Celsus Labs are very aware of the advantages of distributed version control and have been toying with the idea of moving our entire code repository to a distributed system. The typical result of any discussions on the topic is something like "Yeah, sounds good, let's do it! Eventually!". Any procrastination arising from this is the thought of having to port all our existing code from Subversion, but even a small amount of research on the task has us running out of excuses pretty quickly...

Mercurial? Git? Bazaar? The debate rages on... With over a million search results for 'X versus Y', there is no shortage of opinions and case studies on the topic, and it goes without saying that there is no obvious choice that suits every user and every situation.

Some factors in our decision are level of functionality, ease of use, branching and merging behaviour, and support for migration from SVN. Although we are no strangers to the command line, scripting etc., the convenience of GUI clients (TortoiseHg for example) and IDE integration also has some weight in the decision.

Recently, some of the team started using Subversion and Mercurial in parallel - Hg for versioning local changes, which are then committed to a central SVN repository. It seems we have already stared down the road towards a complete migration to distributed version control...

Thoughts...?

Some links:

Hg Init: a Mercurial tutorial by Joel Spolsky
Mercurial ConvertExtension
TortoiseHg
A collaborative Git guide on stackoverflow
Pro Git Book

0 comments:

Post a Comment