Mercurial 6.5 (2023-07-06)#
Mercurial 6.5.3#
- “hgweb: pass strings in WSGI environment correctly from wsgicgi” 
- “perf: introduce more cache invalidation option in perf::tags” 
- “perf: add a - --clear-fnode-cache-revargument to perf::tags”
- “perf: add a –update-last flag to perf::tags” 
- “blackbox: add a option to duplicate output to stderr too” 
- “tags: avoid expensive access to repo.changelog in a loop” 
- “revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV” 
- “httppeer: fix static-http: scheme autodetection (issue6833)” 
- “tests: backed out changeset 8037ddacad47” 
- “stream-clone: fix a crash when a repo with an empty revlog is cloned” 
- “censor: accept censored revision during upgrade” 
- “revlog: avoid opening and closing the file for each cloned revision” 
Mercurial 6.5.2#
- hgweb: encode WSGI environment using the ISO-8859-1 codec 
- rhg: fix the bug where sparse config is interpreted as relglob instead of glob 
- gpg: fix an UnboundLocalError whenever using –force 
- transaction: fix repr() and make the default name bytes 
- setup: make the error “Unable to find a working hg binary” more informative 
- tests: avoid test environment affecting setup.py 
- run-tests: detect HGWITHRUSTEXT value 
Mercurial 6.5.1#
- A bunch of improvements to Python 3.12 compatibility 
- repoview: fix the filter created by - extrafilter
- Improve portability of the test suite 
- fncache: fix a bug that corrupts the fncache after transaction rollback 
- revlog: fix the naming scheme use by split temporary file 
- perf: fix perf::tags 
Mercurial 6.5#
As usual, a lot of patches don’t make it to this list since they’re more internal.
New Features#
- Improved Python 3.12 compatiblity 
- configitems: enable changegroup3 by default (unless using infinitepush) 
- extras: expose ‘retained_extras’ for extensions to extend 
- stabletailgraph: implement stable-tail sort 
- stabletailgraph: naive version of leap computation 
- bundle: introduce a “v3” spec 
- clone-bundles: add a basic first version of automatic bundle generation 
- clone-bundles: garbage collect older bundle when generating new ones 
- clone-bundles: only regenerate the clone bundle when cached ration is low 
- clone-bundles: also control automation based on absolute number of revisions 
- clone-bundles: add a configuration to control auto-generation on changes 
- clone-bundles: introduce a command to refresh bundle 
- clone-bundles: add a command to clear all bundles 
- clone-bundles: add an option to generate bundles in the background 
- clonebundles: add support for inline (streaming) clonebundles 
- clonebundles: adds a auto-generate.serve-inline option 
- match: add - filepath:pattern to match an exact filepath relative to the root
- hgweb: add “children” into the JSON template for a changeset 
- hgweb: add support to explicitly access hidden changesets 
- pull: add –remote-hidden option and pass it through peer creation 
- hidden: add support for –remote-hidden to HTTP peer 
- hidden: support passing –hidden with - serve --stdio
- hidden: add support to explicitly access hidden changesets with SSH peers 
- perf: introduce a - perf::stream-locked-sectioncommand
- perf: add a function to find a stream version generator 
- perf: add support for stream-v3 during benchmark 
- perf: add a perf::stream-generate command 
- perf: add a perf::stream-consume 
- cli: make debugnodemap capable of inspecting an arbitrary nodemap 
- rust: configure MSRV in Clippy 
- rhg: make - rhg fileswork if- ui.relative-files=trueis specified
- rhg: support - rhg fileswith- ui.relative-paths=false
- rhg: support - status --print0
- tree-manifest: allow - debugupgraderepoto run on tree manifest repo
- library: enable runpy invocation on mercurial package 
- library: incorporate demandimport into runpy invocation 
- exchange: allow passing no includes/excludes to - pull()
New Experimental Features#
- stream-clone: add an experimental v3 version of the protocol 
- stream-clone: support streamv3 on the cli [hg bundle] 
Bug Fixes#
- mail: add a missing argument to properly override starttls 
- bundle: include required phases when saving a bundle (issue6794) 
- outgoing: fix common-heads computation from - missingrootsargument
- strip: do not include internal changeset in the strip backup 
- bundle: abort if the user request bundling of internal changesets 
- bundle: prevent implicit bundling of internal changeset 
- encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings 
- sha1dc: Make sure SHA1DC_BIGENDIAN is set on Darwin/PowerPC 
- zstd: hack include order to ensure that our zstd.h is found 
- dirstate: better error messages when dirstate is corrupted 
- stream-clone: avoid opening a revlog in case we do not need it 
- treemanifest: make - updatecachesupdate the nodemaps for all directories
- rust-hg-core: move from - ouroborosto- self_cell
- rust-dependencies: switch from - usersto- whoami
- dirstate-v2: actually fix the dirstate-v2 upgrade race 
- dirstate: avoid leaking disk space in - hg debugrebuilddirstate
- clonebundles: add warning if auto-generate is enabled without formats 
- win32mbcs: unbyteify some strings for py3 support 
- rust-revlog: fix incorrect results with NULL_NODE prefixes 
- rust-revlog: fix RevlogEntry.data() for NULL_REVISION 
Backwards Compatibility Changes#
- infinitepush: aggressively deprecated infinite push 
- narrow: indicated the default of ‘Yes’ when confirming auto-remove-includes 
Internal API Changes#
- Store walk was reworked to fix small race conditions in stream-clone and greatly improve its API robustness and flexibility. 
Miscellaneous#
- Typechecking support was improved in a lot of places 
- Removed more useless compat code for now unsupported Python versions 
- Sped up zstd usage in Rust contexts 
- revlog: add an exception hint when processing LFS flags without the extension 
- ui: keep the progress bar around when writing if stdout is not a tty 
- transaction: use a “.bck” extension for all backup file