Mercurial has reached version 3.8. This release brings cHg
a new Mercurial command server client aimed to improve access to Mercurial API and circumvent potential licensing issues. Additionally, Mercurial 3.8 brings improvements to many commands and extensions, and various performance improvements.
As mentioned, Mercurial cHg
is a new command-line client that will pipe its commands to Mercurial command server, which was introduced with version 1.9 to provide a better model of interaction with Mercurial to client programs. The main issue that Mercurial command server tries to solve is related to licensing: being GPL-licensed, any client accessing Mercurial's API will need to be released under the GPL, which is sometimes a requirement that clients cannot fulfill. Alternatively, clients can access Mercurial through hg
, its command-line client, at the cost of a significant overhead due having to launch hg
each time. Thanks to the command server, it became possible to write clients or libraries that interface with Mercurial through a pipe, hence not falling under the provisions of the GPL. Now, cHg
provides a ready-to-use replacement for hg
that will speed up any client that was accessing Mercurial through hg
at no additional cost.
A few more notable changes in Mercurial 3.8 are:
hg update
, and other commands that perform update such ashg pull -u
, warn about other topological heads. Related to this, nowhg update
only updates to the tip-most changeset on the same topological branch, ignoring other topological branches.hg resolve
will now provide better hints to continue an interrupted command, e.g.,hg rebase
orhg histedit
.- The new experimental extension
automv
to automatically detect file copies and renaming. hg rebase
,hg log -f <file>
,hg update
on Windows, are now faster.
As a last note, Mercurial 3.8 also fixes a low-priority security vulnerability that made it possible to execute arbitrary code when converting Git repositories with “hostile names”.
Immediately after releasing version 3.8, 3.8.1 was released to fix a release oversight.
Mercurial 3.8.1 can be downloaded in several binary and source formats.