Current Articles | RSS Feed RSS Feed

Mercurial Distributed SCM Tool Tames the Mob

Posted by Andy Singleton on Wed, Oct 24, 2007 @ 03:42 PM
 
Today we added a tool that hosts Mercurial, a distributed source code management system.  I'd like to invite the true hard-core geeks among us to give it a test drive.  Lead developer, Vitalie Lazu, provides these instructions.

Mercurial is a distributed source code management system.  In a distributed SCM system, every developer has a copy of the repository and a set of individually customized versions, or branches.  Developers share their work by swapping changesets, and they can essentially mix and match, deciding what change to merge, and what changes to leave out.  Distributed SCM systems have become popular in big open source projects like Linux, which uses GIT, and Mozilla, which uses Mercurial.  I'll explain why below. 

We expect that Subversion, a centralized SCM system, will remain the choice of the majority of our users.  Subversion helps to build teams by essentially forcing everyone to work on the same build.  And, it has great mouse-operated client software. It's easy to use.

Distributed SCM systems make it harder to build teams.  People can wander off more easily.  And, they use command line interfaces and require some real thinking to operate.  But, they are essential if you have a lot of contributors.  Statistically, the chance that you will have a broken build in a centralized SCM system is much greater if you have 30 people contributing, instead of three.  Every changeset can break something, with the potential for fingerpointing and even mob chaos.  With a distributed SCM System, you can funnel the changesets through a "maintainer", and that person can test them and manage the versions that go to a central distribution point, such as the Assembla repository.  It's an organizational structure that we know can scale to thousands of contributors.

By offering Mercurial, we are making a commitment to support these more complex projects.

We selected Mercurial because it integrates with Trac, and it works well on all of our typical platforms - Windows, Mac, and Linux.  Some of the alternatives are weak in Windows support, and we like the Trac code browser.  We did some research, and we determined that Mercurial is a good next step for sophisticated teams.

It's a test at this stage.  Please try it out and send in your comments.  We have copied some of the documentation here where you can comment on it.  Create a space, go to the Admin/Tools page, and select "Trac and Mercurial".

Tags: , ,

COMMENTS

That's great news, you made me interested in DVCS tools! Here's an intro I found on the internet: http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ Watch the video with Linus! Mercurial is very similar to git (according to Linus).

posted @ Wednesday, October 31, 2007 2:20 AM by Daniel Lorch


Of all the DVCS out there, the one closest to git is mercurial, the one closest to mercurial is git. In both cases the next closest is monotone which both derive from. 
 
You can find two more videos on youtube or google videos. The first one is a follow up talk on git given by Randal Schwarz. The second one is a talk on mercurial given by Bryan O'Sullivan who wrote the "hgbook", what is effectively the mercurial manual.

posted @ Sunday, October 12, 2008 3:17 AM by BubbaT


I have used several SCM tools over the past 15 years on small and very large projects, and distributed is the way to go. AccuRev is the only non-distributed system I would consider, only because it behaves like one but requires you to be connected to the central server. 
Mercurial has command line interface as well as, for those Windows users, an explorer shell UI, TortoiseHg. It works quite well. 
 
The biggest advantage distributed systems have over their counterparts is the ability to handling merging better and code refactoring (file renames). It is a nightmare in other systems. Renaming in TortoiseHg is not exactly as elegant as other DVSC systems, but can be accomplished by right clicking the file in the Commit dialog and selecting "xxxx was renamed/moved to yyyy". 
 
Mercurial with TortoiseHg is so easy I use it for everything, including non-code files. 
 
Cheers, 
John

posted @ Sunday, January 18, 2009 12:05 PM by John Fuqua


Comments have been closed for this article.

Follow Assembla

twitter facebook youtube linkedin googleplus

Subscribe by Email

Your email: