Mercurial 4.1 (2017-02-01)#
Mercurial 4.1.3 (2017-04-18)#
This is an out of cycle release to address a security issue:
hg serve --stdiocould be tricked into granting authorized users access to the Python debugger. Thanks to Jonathan Claudius of Mozilla for reporting this issue. This issue is only a security issue for repositories served using --stdio, which includes ssh but *not* http. This is CVE-2017-9462.
Mercurial 4.1.2 (2017-04-03)#
This is a regularly-scheduled bugfix release.
Mercurial should work inside IIS on Windows again. (issue5493)
zstd support now refuses to work on old bundle formats. (issue5506)
Merges involving subrepositories no longer crash in some cases. (issue5505)
Checking for new heads during push is no longer accidentally quadratic
Mercurial 4.1.1 (2017-03-02)#
This is a regularly-scheduled bugfix release.
Several incorrect mailing list addresses have been corrected.
Various error cases have been corrected during push and pull.
Minor issues that happened when Mercurial spawned worker processes have been fixed.
Mercurial 4.1 release#
Features#
A new extensible "compression engines" API has been implemented. Support for a new compression format can now be implemented in extensions.
New compression formats are fully supported in bundles and the wire protocol. There is experimental support for different compression in revlogs.
zstd - a new and exciting compression engine - is now distributed with Mercurial and built by default
HTTP payloads for many commands will now use zstd by default (as opposed to zlib) when both client and server support it. This can reduce server-side CPU usage to ~60% of original for operations like serving bundles.
zstd compressed bundles can be produced by specifying the
zstdbundle type. e.g.hg bundle -a -t zstd-v2 zstd-bundle.hg.
A new statistical profiler has been added and made the default profiler for
--profile. This profiler gives more accurate results than Python's built-incProfile(the previous default) because the profiler overhead is much smaller. The output from--profilenow displays the code hot path by default. This allows Mercurial developers to more accurately identify performance problems.New
followlines(file, from:to, startrev=.)revset predicate to track a part of changes.Experimental support for additional git-diff features.
Troubled changes (from ChangesetEvolution) are noted more prominently in a few places.
An experimental
hg debugupgraderepocommand allows in-place upgrading of repositories to the latest storage format.
Improvements#
Performance of reading individual revlog entries has been greatly improved. This will be noticeable when performing changelog scans on large repositories (such as when executing certain revsets).
The low-level content diffing algorithm is now ~2x faster. Operations that write data to the repository (like commit) can be noticeably faster as a result.