Mercurial

Mercurial is a distributed version-control system first released by Matt Mackall in April 2005. Its own project site describes it as “a free, distributed source control management tool” that “efficiently handles projects of any size and offers an easy and intuitive interface.” A defining property, the site notes, is that it “stores the complete project history in every clone,” so that most operations run locally and quickly.

The first public version was announced on April 20, 2005, in a message to the Linux kernel mailing list titled “Mercurial v0.1 - a minimal scalable distributed SCM.” Mackall described an early proof of concept that could already clone, branch, and merge repositories, written “in less than 600 lines of Python.” He had built it in response to BitMover’s withdrawal of the free version of BitKeeper earlier that month, which left Linux kernel developers without a distributed tool.

Mercurial shared this origin moment with git: both distributed version-control systems were born in April 2005 out of the same BitKeeper situation. The two took different design paths, with Mercurial favoring a clean Python implementation and a relatively gentle command set, while git emphasized raw speed and a content-addressable data model.

For years Mercurial was git’s principal rival among distributed systems and was adopted by large organizations including Mozilla and Facebook. Git ultimately won the broadest adoption, especially after the rise of GitHub, but Mercurial remained in active development and continued to serve projects that preferred its design.