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-rev
argument 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 roothgweb: 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-section
commandperf: 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 files
work ifui.relative-files=true
is specifiedrhg: support
rhg files
withui.relative-paths=false
rhg: support
status --print0
tree-manifest: allow
debugupgraderepo
to run on tree manifest repolibrary: 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
missingroots
argumentstrip: 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
updatecaches
update the nodemaps for all directoriesrust-hg-core: move from
ouroboros
toself_cell
rust-dependencies: switch from
users
towhoami
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