Mercurial
mercurial-scm.org
What it is
Mercurial is a free, distributed source control system for managing development history. Each developer keeps a full local copy of that history, so work can continue without a network connection or central server. It is designed for projects of any size and supports diffs, commits, branching, and merging. The software runs on Windows, macOS, and Linux; binary releases are also listed for Solaris 11 Express and other platforms. Installation options include system packages, Windows winget, Homebrew, PyPI tools, and source builds. Python extensions can add or change commands and access core functionality. Official extensions cover tasks such as Git command mapping, email notifications, and external diff tools. Mercurial supports sparse checkout and nested repositories; large-file handling is available through an extension. It is licensed under the GNU GPL version 2 or later. One security caveat: carefully constructed Git subrepositories can pose a clone-time code-execution risk, so they are disabled by default.
Spec sheet
- Integrations
- Official extensions include Bugzilla hooks, Git command mapping, Git fast-export, email notifications and external diff tools.Read 30 Sep 2026 · mercurial-scm.org
- Access control
- The acl extension allows or denies write access to branches and paths when receiving incoming changesets.Read 30 Sep 2026 · mercurial-scm.org
- Community support
- Users can get help through the Matrix channel, IRC and the general Mercurial mailing list.Read 30 Sep 2026 · mercurial-scm.org
- Distributed architecture
- Each developer has a local copy of the entire development history and can work independently of network access or a central server.Read 30 Sep 2026 · mercurial-scm.org
- Extensibility
- Python extensions can add commands, change existing commands and access Mercurial core functionality.Read 30 Sep 2026 · mercurial-scm.org
- Installation methods
- Official installation instructions cover system packages, Windows winget, Homebrew, PyPI tools and source builds.Read 30 Sep 2026 · mercurial-scm.org
- Open source license
- Mercurial is licensed under the GNU General Public License version 2 or any later version.Read 30 Sep 2026 · mercurial-scm.org
- Origin
- Work on Mercurial began in April 2005 with a goal of efficiently managing Linux-sized trees.Read 30 Sep 2026 · mercurial-scm.org
- Performance
- Mercurial is designed to handle projects of any size with fast diffs, commits, branching and merging.Read 30 Sep 2026 · mercurial-scm.org
- Product type
- Mercurial is a free, distributed source control management tool.Read 30 Sep 2026 · mercurial-scm.org
- Project governance
- The Mercurial project is run by its community and coordinated by committers and reviewers under a steering committee.Read 30 Sep 2026 · mercurial-scm.org
- Security limitation
- Mercurial documentation warns that auditing is insufficient to prevent clone-time code execution through carefully constructed Git subrepositories, which are disabled by default.Read 30 Sep 2026 · mercurial-scm.org
- Security reporting
- The project provides a moderated mercurial-security mailing list for private security discussion and reporting.Read 30 Sep 2026 · mercurial-scm.org
- Supported systems
- Binary releases are available for Microsoft Windows, GNU/Linux, macOS, Solaris 11 Express and other platforms.Read 30 Sep 2026 · mercurial-scm.org
Plans and prices
Strong points and limits
Strong points
- Local history enables work without a central server.
- Supports branching, merging, commits, and fast diffs.
- Python extensions can add or change commands.
- Sparse checkout and nested repositories are supported.
Limits
- Large-file handling requires an extension.
- Carefully constructed Git subrepositories pose a clone-time risk.
- Those subrepositories are disabled by default.
Who it suits
Mercurial suits developers who want distributed version control and the option to work offline. Its Python extensions and range of installation methods may also suit teams that want to customize or self-host their tooling.
Verdict
Mercurial offers distributed source control, offline work, and extension-based customization at no cost. Readers should account for the extension requirement for large files and the documented subrepository security caveat.
Where Specifiction places it
- Version Control Software#35 of 627.7
- Source Code Management#20 of 307.7
- Game Version Control Software#23 of 287.7