Mercurial 6.2 (2022-07-11)#

Mercurial 6.2.3#

  • tests: improve portability, debugging and flakiness

  • packaging: update dulwich to drop the certifi dependency on Windows

  • rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade

Mercurial 6.2.2#

  • fsmonitor: restore functionality by moving to new dirstate APIs

  • dirstate-v2: fix data file transaction handling (issue6730)

  • rust: fix behavior when matching files with multiple includes

  • rust: widen range of compatible crates to help with packaging

  • rust-status: ignored directories are now correctly only listed if opted into

  • automation: improve Windows packaging tooling

  • contrib: update Mercurial install in bootstrap environment

  • Remove flakiness in some tests

  • Improve portability of certain tar uses in tests

Mercurial 6.2.1#

  • Fix SSL support in Python 3.6

  • git: make sure to fsdecode bookmark names everywhere (issue6723)

  • git: add a missing reset_copy keyword argument to dirstate.set_tracked()

  • git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)

  • packaging: update keyring on Windows to avoid spurious stacktraces

  • packaging: bump dulwich to 0.20.45

  • Fix typos in documentation for debugdiscovery

  • Miscellaneous improvements of debugdiscovery

Mercurial 6.2#

‘’’This is the first release to support Python 3.6+ ‘’only’’’’’

New Features#

  • Introduce a way to auto-upgrade a repo for certain requirements (see hg help config.format)

  • filemerge: add support for partial conflict resolution by external tool

  • contrib: add a partial-merge tool for sorted lists (such as Python imports)

  • revlog: reorder p1 and p2 when p1 is null and p2 is not while respecting issue6528

  • rhg: add support for ignoring all extensions

  • completion: install completers to conventional locations

  • revert: ask user to confirm before tracking new file when interactive

  • Rust implementation now uses the new dirstate API

  • sslutil: be less strict about which ciphers are allowed when using –insecure

  • sslutil: support TLSV1_ALERT_PROTOCOL_VERSION reason code

  • absorb: make --edit-lines imply --apply-changes

  • diff: add help text to highlight the ability to do merge diffs

  • censor: make rhg fall back to python when encountering a censored node

  • clone: use better names for temp files

  • debuglock: make the command more useful in non-interactive mode

  • debugdeltachain: distinct between snapshot and other diffs

  • debugindex: rename to debugindex debug-revlog-index

  • Make debug-revlog-index give out more information

  • sparse: use the rust code even when sparse is present

Bug Fixes#

  • Python 3 bugfixes

  • Windows bugfixes

  • templates: make firstline filter not keep ‘\v’, ‘\f’ and similar

  • rhg: sort unsupported extensions in error message

  • Improve performance of all functions that extract the first line of a text

  • crecord: avoid duplicating lines when reverting noeol->eol change

  • Some config.path options are now discoverable via config

  • mail: don’t complain about a multi-word email.method

  • bundlespec: do not overwrite bundlespec value with the config one

  • bundlespec: do not check for - in the params portion of the bundlespec

  • bundlespec: handle the presence of obsmarker part

  • sparse: start moving away from the global variable for detection of usage

  • rust-changelog: don’t skip empty lines when iterating over changeset lines

  • narrow: support debugupgraderepo

  • bundle: quick fix to ludicrous performance penalty

  • followlines: don’t put Unicode directly into the .js file (issue6559)

  • manifest: improve error message in case for tree manifest

  • revlog: use %d to format int instead of %lu (issue6565)

  • revlog: use appropriate format char for int (“i” instead of I”)

  • worker: stop relying on garbage collection to release memoryview

  • worker: implement _blockingreader.readinto() (issue6444)

  • worker: avoid potential partial write of pickled data

Backwards Compatibility Changes#

  • ‘’’Removed Python 2 support’’’: this includes a lot of cleanup in our codebase, automation, testing, etc.

  • debugindex: rename to debugindex debug-revlog-index

Miscellaneous#

  • Fix typos and add missing items from documentation

  • dirstate-tree: optimize HashMap lookups with raw_entry_mut

  • Rust dependencies have been upgraded

  • revlog: rank computation is done by Rust when available

  • Improve discovery test tooling

  • Audit the number of queries done in discovery

  • Improved .hgignore of the mercurial-devel repository itself

  • Improve test coverage of dirstate-v2

  • rust-requirements: allow loading repos with bookmarksinstore requirement

  • Various Rust refactorings to help with revlog management

  • Improve debugability of Rust structs

  • Improve unit testing of the Rust dirstatemap

  • Improve robustness of the Rust dirstatemap to corruption

  • Improve changelog-v2 upgrade system