# 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
