Official website

Mercurial is a Version Control System (VCS) for controlling source code or just about any sort of textual data that needs to frequently changed and worked on by many people. It can also handle binary data with various degrees of grace. Its best-known free competitors are Subversion, CVS, git, and bzr. The revision control node contains an overview of what software like Mercurial does. Briefly, it allows collaboration of many people on the same source tree by allowing asynchronous changes of the same source text, and resolves conflicts (when two people modify the same bit of code at the same time) by merging, that is, by forcing the person committing the conflicting changes to decide which one of the two conflicting changes it should use. The common alternative is to lock files, that is, the person working on a particular file locks it so that nobody else can modify it while that person is working on it, which is an antiquated method of source control and not very common nowadays.

Mercurial comes with an integrated web view and several extensions for easing various forms of source control. It represents the revisions by a directed acyclic graph, basically, a tree where branches may merge back together as two revisions from the tree get merged. The source for Mercurial itself is all Python, and its license is the GPL version 2, making this free software. It is often abbreviated to hg, based on the chemical symbol for mercury, and although it is primarily a command-driven interface, several graphical frontends exist, such as TortoiseHG which integrates with the Windows file browser, or its Unix-only variant, hgtk. Additionally, most respectable editors and IDEs also have integration with hg, easing the workflow of doing everything from one place, pulling from the remote or local repository, working on the code, reviewing changes, and pushing those changes back.

Mercurial was conceived during 2005 as an alternative to BitKeeper during an "I-told-you-so" moment in the history of Linux. Linus Torvalds was using the non-free BitKeeper software for managing the Linux source tree which nevertheless allowed gratis use, at least for Linux. One day, when the BitKeeper protocol was reverse-engineered, the author of BitKeeper decided to go back on his decision to allow gratis use of the software for Linux, and Mercurial was one of the projects that arose in order to replace BitKeeper. The other one is Git, writen by Linus himself, and the one that eventually ended up replacing BitKeeper for Linux.

Being software that was originally intended to manage the semi-chaotic Linux source tree, it handles very well branching, merging, and distributed revision control. That is, cloning of an entire repository is a frequent and easy operation with Mercurial, and is in fact the preferred method to first get a local working copy. When working with a repository, it's possible to locally clone it, try something else, and then merge back the changes from the two clones. It's also possible to work as the Linux source tree works, many side repositories with lieutenants from which the core dictator (Linus himself) pulls to form the officially-sanctioned source tree, although I personally have seldom seen Mercurial being used this way. This usage, incidentally, is roughly what people mean with "distributed revision control".

There are several projects that use Mercurial, like GNU Octave, SAGE, which were the two that motivated to get me started with the software myself, and now I use it to manage all of my code. Possibly because of the language in which Mercurial is written, even the Python project has recently announced its move to Mercurial. Its development is alive and well. In the Freenode #mercurial channel, users and developers alike congregate to further its development or to ask questions about its usage.

Oh, by the way, ecore is on Mercurial now.

Mer*cu"ri*al (?), a. [L. mercurialis, fr. Mercurius Mercury: cf. F. mercuriel.]


Having the qualities fabled to belong to the god Mercury; swift; active; sprightly; fickle; volatile; changeable; as, a mercurial youth; a mercurial temperament.

A mercurial man Who fluttered over all things like a fan. Byron.


Having the form or image of Mercury; -- applied to ancient guideposts.




Of or pertaining to Mercury as the god of trade; hence, money-making; crafty.

The mercurial wand of commerce. J. Q. Adams.


Of or pertaining to, or containing, mercury; as, mercurial preparations, barometer. See Mercury, 2.

5. Med.

Caused by the use of mercury; as, mercurial sore mouth.


© Webster 1913.

Mer*cu"ri*al, n.


A person having mercurial qualities.


2. Med.

A preparation containing mercury.


© Webster 1913.

Log in or register to write something here or to contact authors.