Mercurial —

Mercurial

Mercurial (Hg) is a modern distributed version control system (DVCS) and aragost Trifork provide a full range of services around it. If you’re new to Mercurial, then please read our introduction. We feel it’s safe to say that Mercurial is faster and easier to use than older systems such as Subversion and ClearCase. We’ll love to help you upgrade!

Mercurial Advantages

The advantages we list here are over traditional centralized version control.

The development of Mercurial began in 2005 and it is now a very mature tool. This why large players such as Google, Microsoft, and Oracle use Mercurial for some of their internal and external projects. Google and Microsoft have directly supported Mercurial with donations of more than $20,000 each.

Tools like Eclipse, NetBeans, and Visual Studio all have plugins that support Mercurial. Similarly, the major continuous integration servers (Jenkins, TeamCity, Buildbot, …) all support Mercurial.

Increase Productivity

We strongly believe that using Mercurial will increase the productivity of you and your development team. To start with, because Mercurial is decentralized, it’s faster than the old centralized tools.

More importantly, with proper support for branching and merging, you stop wasting time resolving spurious conflicts. Some tools, such as Subversion, will ask you to resolve conflicts when there’s no real conflict. The typical case is when developers have renamed a file on one branch, and modified it on another. This simple situation should be easy to merge (just put the modifications into the new file name) but Subversion cannot handle it.

You will still have conflicts when using Mercurial, but they will be real: you get a conflict because two team members had different intentions when they modified the same region in the same file. This type of conflicts is part of software development and communication is the key to solve them smoothly.

Improved Workflows

Some tools have either no good answer to off shoring (Subversion) or they require you to buy additional software to handle synchronization between remote sites (ClearCase MultiSite). Mercurial, on the other hand, comes with built-in support for off-shoring since it’s a distributed version control system.

This means that you can easily setup a workflow where you have have a local “hub” in each of your major development offices. The developers will then synchronize with each other using this local hub, while the hubs are synchronized periodically with each other. With offices in Switzerland, Poland and India, the network would look like this:

Off-shoring

Better Code

Mercurial is very fast. This means that developers will tend to use it more and so they will naturally tend to make smaller and more self-contained checkins. Clients have told us stories about developers that did not checkin a single time in a two-week sprint — they delivered the entire feature in one big commit.

Such a monster commit will naturally be a combination of bugfixes (some of them will be unrelated to the feature), documentation fixes, refactoring, and new code. By mixing it all together, it becomes very hard to review the code. Without reviews, it becomes very hard to ensure a good code quality.

In this way, Mercurial indirectly help you write better code.

What we Offer

We provide full support for Mercurial and have helped both big and small clients.

Planning

The version control is a crucial part of the development process, and changing it will therefore require some careful planning. While there is a wealth of information about Mercurial online, we offer more direct and tailored help.

We often see that clients come to us after having worked out their workflows. In our opinion, it makes more sense to talk with experts before too many writing too many design documents. Doing so will save you time since you get on the right track from the start.

Training

We do seminars for users on all levels. We’ve done both remote training (shared desktop) and on-site training. We’ve put some generic training material online in the form of a Mercurial Kick Start.

Customization

Big organizations typically have big procedures in place for their software development. We know our way around the Mercurial code base and can write custom extensions that make Mercurial fit into those procedures. We have listed some of our customer projects online.

Support Contracts

We offer long-term support contracts with email and remote desktop support. This can be for user (workflow) questions and it can be for admin (server) questions.

Community Involvement

Mercurial is an open source tool and aragost Trifork is actively involved in the development.

At aragost Trifork, we organize Mercurial events and talks such as Mercurial sprints where Mercurial developers meet for a couple of days to work on the code. We also regularly speak at conferences and user groups about Mercurial and distributed version control.

Finally, we maintain a collection of links to Mercurial material at http://www.mercurial.ch.

Contact Us

If you would like to have further information on how aragost Trifork can support you, then don’t hesitate to contact us.