Evaluating Mercurial as a posibble DVCS as opposed to Git

As some of you might know, lately I've been searching for a new tool to use as a version control system.  Currently for my job we still use Subversion.   In many ways we have outgrown it or at least we realize that we can take advantage of some of the capabilities of a distributed version control system (DVCS) - like disconnected operations, redundant backup repositories, better performance.

 To allow us to meet our team's needs we need keep a workflow similar to what we have with subversion - many clients and one master host or central repository.  I have not gone through the the process of setting up a git repository on the server - but it looks like a real headache.  It seems that even setting up a normal local file repository is a challenge.   A local file repository would be insufficient because we cannot control security with that anyway.   However to go through the whole process of setting up Git with SSH, it feels like I'm trying to fit a square peg into a round hole.

This has lead me to take a look at the other possible tool - Mercurial.  I've only started playing with it and haven't quite figured out all the ins and outs and honestly don't know if it will be a better fit, although everything I see so far gives me that indication.

Anyway, the whole point of this post is to indicate that I found an awesome tutorial to get started on Mercurial by Joel Spolsky at http://hginit.com.  It doesn't cover all the ins and outs of setup, but it does drive into the heart of a practical and simple way to use it.

Go ahead and give Mercurial a try.  If you do, you should probably start by downloading it from http://tortoisehg.bitbucket.org/.   You can always download just mercurial but toroisehg will provide you with everything you need all in one download.

My intent is to figure out how to use Mercurial from the command line to understand the its basic approach.  It seems very similar to Git, but I must confirm my assumptions.  Once I understand it I will dig into the Tortoisehg.  Once I figure out how to use it all, you can expect another post to outline exactly how to make it work.

My plan is to tie the following material into one document:

1. Use the command line from windows 2007 and 2008 Server for Mercurial
2. Setup a central repository, including security, on Windows Server 2008
3. Setup and test run a practical workflow
4. Call it from the build scripts

Until Next Time - Happy Coding.


Popular posts from this blog

Simple Example of Using Pipes with C#

Difference Between Adapter and Bridge Design Patterns

IoC Container Vs. Service Locator