This release was delayed due to the ongoing efforts to improve robustness of the UX on Windows, especially on Python 3.
This is the last release to support Python 2. Python 2 support will be dropped for all platforms in Mercurial 6.1.
debugrebuildfncache now has an option to rebuild only the index files
a new bookmarks.mode path option have been introduced to control the bookmark update strategy during exchange with a peer. See hg help config and look for section paths for details.
the new bookmarks.mode paths option supports the new mode mirror. See hg help config and look for section paths for details.
more commands support detailed exit codes when config ui.detailed-exit-codes is enabled
Default Format Change
New Experimental Features
Major feature: version 2 of the dirstate is available (the first version is as old as Mercurial itself). It allows for much faster working copy inspection (status, diff, commit, update, etc.) and richer information (symlink and exec info on Windows, etc.). The format has been frozen with room for some future evolution and the current implementations (Python, Python + C, Python + Rust or pure Rust) should be compatible with any future change or optimization that the format allows. You can get more information in the internal documentation
Added a new web.full-garbage-collection-rate to control performance. See
- de2e04fe4897a554b9ef433167f11ea4feb2e09c for more information
Added a new histedit.later-commits-first option to affect the ordering of commits in chistedit to match the order in hg log -G. It will affect the text-based version before graduating from experimental.
hg fix --working-dir now correctly works when in an uncommitted merge state
Unintentional duplicated calls to hg fix's internals were removed, making it potentially much faster
rhg cat can be called without a revision
rhg cat can be called with the . revision
rhg cat is more robust than before with regards to edge cases. Some still remain like a tag or bookmark that is ambiguous with a nodeid prefix, only nodeids (prefixed or not) are supported as of now.
rhg cat is even faster
rhg (Rust fast-path for hg) now supports the full config list syntax
rhg now parses some corner-cases for revsets correctly
Fixed an fsmonitor on Python 3 during exception handling
- Lots of Windows fixes
- Lots of miscellaneous other fixes
- Removed a CPython-specific compatibility hack to improve support for alternative Python implementations
- Added a compatibility fix for Python 3.11
Backwards Compatibility Changes
Internal API Changes
The following functions have been removed:
wireprotov1peer's batchable is now a simple function and not a generator
The Rust extensions (and by extension the experimental rhg status) only use a tree-based dirstate in-memory, even when using dirstate-v1. See bf8837e3d7cec40fe649c47163a3154dda03fa16 for more details
- The Rust minimum supported version is now 1.48.0 in accordance with out policy of keeping up with Debian stable
- The test harness plays nicer with the NixOS sandbox
- The test harness plays nicer with NetBSD
- Improved rpm packaging