Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Mercurial 3.8 Released with New Fast Client for Mercurial Command Server

Mercurial 3.8 Released with New Fast Client for Mercurial Command Server

This item in japanese


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 as hg pull -u, warn about other topological heads. Related to this, now hg 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 or hg 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.

Rate this Article