Mercurial 3.8 was released on 1st of May. Mercurial follows a time-based release with 3-month cycle meaning that there are four major releases during a calendar year. You may read the original release notes or check the overview of new features from official Mercurial website. This blog post highlights some of the enhancements we considered worth mentioning explicitly.
New features worth mentioning about
cHg is a Mercurial command server running on Unix. Mercurial command server was originally introduced to solve programmatic access and licensing related problems. Anyone calling Mercurial internal APIs would need to license the calling software with GPL license, as Mercurial is GPL. And while this could be solved by calling the command line interface, this would create overhead when done often. What cHg basically does, is it speeds up running
hg command. In order to use cHg, you need to install it explicitly and add a alias from
hg command to
A new experimental extension called
automv has been added in Mercurial 3.8.
automv is an extension that attempts to detect file copies and renaming automatically. This comes handy if you move or rename files using a IDE for example.
automv is enabled by adding it under
[extensions] in your
.hgrc file. In order to test it out, first move a file in the filesystem, then use
hg rm to remove the file from Mercurial, add the new file using
hg add, and finally commit changes. If everything went fine, the commit command should produce a message
detected move of 1 files.
Bookmark handling has been improved.
hg pull -u activates a bookmark if there is a bookmark and deactivates a bookmark if the destination doesn't match the existing bookmark. In addition, pushing the active bookmark can be done using
hg push -B ..
In addition to the enhancements above, there are various performance improvements in Mercurial 3.8. The cHg itself can be considered as a performance improvement. fsmonitor extension is another extension, that uses filesystem watching to make commands such as
hg status significantly faster on large repositories.
Rebasing has bee made faster in addition to
hg log. Windows users are happy to find their
hg update commands running four times faster. The full list of performance improvements can be found from the official overview.
Automv and bookmark handling both contribute towards better user experience, which makes this major release welcome addition to any Mercurial users. Performance improvements and bug fixes are good additions, but for us at Deveo, the parts from this release are the bookmarks related enhancements. This is due to the fact that Deveo Mercurial code review functionality is based on bookmarks and branches, and thus these yields benefits from these enhancements.