= Mercurial 6.8.1 = * Python 3.12: fix an issue between `threading` and `demandimport` * rhg: expand user and environment variable in paths to ignore in config and includes * `win32mbcs` extension: fix an encoding issue = Mercurial 6.8 = As usual, a *lot* of patches don't make it to this list. == New Features or performance improvements == * Phases have been reworked to improve their general performance * revset: stop serializing node when using "%ln" * phases: convert remote phase root to node while reading them * phases: use revision number in new_heads * phases: use revision number in analyze_remote_phases * phases: stop using `repo.set` in `remotephasessummary` * phases: move RemotePhasesSummary to revision number * phases: use revision number in `_pushdiscoveryphase` * phases: introduce a performant efficient way to access revision in a set * phases: rework the logic of _pushdiscoveryphase to bound complexity * The Rust working copy code is being used by more places now: * matchers: support patternmatcher in rust * dirstate: remove the python-side whitelist of allowed matchers * stream-clone: disable gc for `_entries_walk` duration * stream-clone: disable gc for the initial section for the v3 format * postincoming: avoid computing branchhead if no report will be posted * stream-clone: disable gc for the entry listing section for the v2 format * perf: allow profiling of more than one run * perf: run the gc before each run * perf: start recording total time after warming * perf: clear vfs audit_cache before each run * outgoing: rework the handling of the `missingroots` case to be faster * outgoing: add a simple fastpath when there is no common * tags-cache: skip the filternode step if we are not going to use it * tags-cache: directly operate on rev-num warming hgtagsfnodescache * tags-cache: directly perform a monimal walk for hgtagsfnodescache warming == New Experimental Features == * Introduce a new experimental branch cache "v3": * branchcache: add more test for the logic around obsolescence and branch heads * branchcache: skip entries that are topological heads in the on disk file * branchcache: add a "pure topological head" fast path * branchcache: allow to detect "pure topological case" for branchmap == Bug Fixes == * rust: use `cpython` 0.7.2 crate to add support for Python 3.12 * perf-stream-locked-section: actually use v1 generation when requested * perf-stream-locked-section: fix the call to the v3 generator * perf-stream-locked-section: advertise the right version key in the help * stream: in v3, skip the "size" fast path if the entries have some unknown size * stream-clone: stop getting the file size of all file in v3 * streamclone: stop listing files for entries that have no volatile files * perf-stream-consume: use the source repository config when applying * bundle: do no check the changegroup version if no changegroup is included * perf: create the temporary target next to the source in stream-consume * bundlespec: fix the "streamv2" and "streamv3-exp" variant * push: rework the computation of fallbackheads to be correct * profiler: flush after writing the profiler output * base-revsets: use an author that actually exercises a lot of changesets * hgrc: search XDG_CONFIG_HOME on mac * clonebundles: add missing newline to legacy response * narrow: add a test for linkrev computation done during widen * Multiple fixes to guard against mmap issues * portability: fix build on Solaris-derived systemd == Backwards Compatibility Changes == == Internal API Changes == == Miscellaneous == * obsolete: quote the feature name