relnotes/6.2
author Pierre-Yves David <pierre-yves.david@octobus.net>
Sat, 13 Apr 2024 23:40:28 +0200
changeset 51592 24844407fa0d
parent 49475 f64261762f3d
permissions -rw-r--r--
perf: clear vfs audit_cache before each run When generating a stream clone, we spend a large amount of time auditing path. Before this changes, the first run was warming the vfs cache for the other runs, leading to a large runtime difference and a "faulty" reported timing for the operation. We now clear this important cache between run to get a more realistic timing. Below are some example of median time change when clearing these cases. The maximum time for a run did not changed significantly. ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.exchange.stream.generate # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.version = latest no-clearing: 17.289905 cache-clearing: 21.587965 (+24.86%, +4.30) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog no-clearing: 32.670748 cache-clearing: 40.467095 (+23.86%, +7.80) ## data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog no-clearing: 37.838858 cache-clearing: 46.072749 (+21.76%, +8.23) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog no-clearing: 32.969395 cache-clearing: 39.646209 (+20.25%, +6.68) In addition, this significantly reduce the timing difference between the performance command, from the perf extensions and a `real `hg bundle` call producing a stream bundle. Some significant differences remain especially on the "mozilla-try" repositories, but they are now smaller. Note that some of that difference will actually not be attributable to the stream generation (like maybe phases or branch map computation). Below are some benchmarks done on a currently draft changeset fixing some unrelated slowness in `hg bundle` (34a78972af409d1ff37c29e60f6ca811ad1a457d) ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default hg.perf.exchange.stream.generate: 21.587965 hg.command.bundle: 24.301799 (+12.57%, +2.71) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog hg.perf.exchange.stream.generate: 40.467095 hg.command.bundle: 44.831317 (+10.78%, +4.36) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog hg.perf.exchange.stream.generate: 39.646209 hg.command.bundle: 45.395258 (+14.50%, +5.75) ## data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog hg.perf.exchange.stream.generate: 46.072749 hg.command.bundle: 55.882608 (+21.29%, +9.81) ## data-env-vars.name = mozilla-try-2023-03-22-zlib-general-delta hg.perf.exchange.stream.generate: 334.716708 hg.command.bundle: 377.856767 (+12.89%, +43.14) ## data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog hg.perf.exchange.stream.generate: 302.972301 hg.command.bundle: 326.098755 (+7.63%, +23.13)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49475
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     1
= Mercurial 6.2.2 =
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     2
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     3
 * fsmonitor: restore functionality by moving to new dirstate APIs
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     4
 * dirstate-v2: fix data file transaction handling (issue6730)
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     5
 * rust: fix behavior when matching files with multiple includes 
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     6
 * rust: widen range of compatible crates to help with packaging
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     7
 * rust-status: ignored directories are now correctly only listed if opted into
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     8
 * automation: improve Windows packaging tooling
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
     9
 * contrib: update Mercurial install in bootstrap environment
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    10
 * Remove flakiness in some tests
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    11
 * Improve portability of certain `tar` uses in tests
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    12
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    13
= Mercurial 6.2.1 =
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    14
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    15
 * Fix SSL support in Python 3.6
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    16
 * git: make sure to fsdecode bookmark names everywhere (issue6723)
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    17
 * git: add a missing reset_copy keyword argument to dirstate.set_tracked()
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    18
 * git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    19
 * packaging: update keyring on Windows to avoid spurious stacktraces
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    20
 * packaging: bump dulwich to 0.20.45
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    21
 * Fix typos in documentation for debugdiscovery
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    22
 * Miscellaneous improvements of debugdiscovery 
f64261762f3d relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49369
diff changeset
    23
49369
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    24
= Mercurial 6.2rc0 =
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    25
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    26
'''This is the first release to support Python 3.6+ ''only'''''
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    27
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    28
== New Features ==
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    29
 * Introduce a way to auto-upgrade a repo for certain requirements (see `hg help config.format`)
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    30
 * filemerge: add support for partial conflict resolution by external tool
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    31
 * contrib: add a partial-merge tool for sorted lists (such as Python imports)
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    32
 * revlog: reorder p1 and p2 when p1 is null and p2 is not while respecting issue6528
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    33
 * rhg: add support for ignoring all extensions
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    34
 * completion: install completers to conventional locations
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    35
 * revert: ask user to confirm before tracking new file when interactive
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    36
 * Rust implementation now uses the new dirstate API
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    37
 * sslutil: be less strict about which ciphers are allowed when using --insecure
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    38
 * sslutil: support TLSV1_ALERT_PROTOCOL_VERSION reason code
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    39
 * absorb: make `--edit-lines` imply `--apply-changes`
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    40
 * diff: add help text to highlight the ability to do merge diffs
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    41
 * censor: make rhg fall back to python when encountering a censored node
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    42
 * clone: use better names for temp files
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    43
 * debuglock: make the command more useful in non-interactive mode
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    44
 * debugdeltachain: distinct between snapshot and other diffs
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    45
 * debugindex: rename to debugindex debug-revlog-index
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    46
 * Make debug-revlog-index give out more information
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
 * sparse: use the rust code even when sparse is present
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
== Bug Fixes ==
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
 * Python 3 bugfixes
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
 * Windows bugfixes
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
 * templates: make `firstline` filter not keep '\v', '\f' and similar
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
 * rhg: sort unsupported extensions in error message
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
 * Improve performance of all functions that extract the first line of a text
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
 * crecord: avoid duplicating lines when reverting noeol->eol change
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
 * Some config.path options are now discoverable via config
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
 * mail: don't complain about a multi-word email.method
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
 * bundlespec: do not overwrite bundlespec value with the config one
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
 * bundlespec: do not check for `-` in the params portion of the bundlespec
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
 * bundlespec: handle the presence of obsmarker part
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
 * sparse: start moving away from the global variable for detection of usage
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
 * rust-changelog: don't skip empty lines when iterating over changeset lines
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
 * narrow: support debugupgraderepo
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
 * bundle: quick fix to ludicrous performance penalty
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
 * followlines: don't put Unicode directly into the .js file (issue6559)
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
 * manifest: improve error message in case for tree manifest
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
 * revlog: use %d to format int instead of %lu (issue6565)
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
 * revlog: use appropriate format char for int ("i" instead of I")
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
 * worker: stop relying on garbage collection to release memoryview
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
 * worker: implement _blockingreader.readinto() (issue6444)
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
 * worker: avoid potential partial write of pickled data
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
== Backwards Compatibility Changes ==
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
 * '''Removed Python 2 support''': this includes a lot of cleanup in our codebase, automation, testing, etc.
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
 * debugindex: rename to debugindex debug-revlog-index
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
== Miscellaneous ==
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    79
 * Fix typos and add missing items from documentation
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    80
 * dirstate-tree: optimize HashMap lookups with raw_entry_mut
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    81
 * Rust dependencies have been upgraded
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    82
 * revlog: rank computation is done by Rust when available
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    83
 * Improve discovery test tooling
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    84
 * Audit the number of queries done in discovery
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    85
 * Improved .hgignore of the mercurial-devel repository itself
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    86
 * Improve test coverage of dirstate-v2
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    87
 * rust-requirements: allow loading repos with `bookmarksinstore` requirement
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    88
 * Various Rust refactorings to help with revlog management
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    89
 * Improve debugability of Rust structs
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    90
 * Improve unit testing of the Rust dirstatemap
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    91
 * Improve robustness of the Rust dirstatemap to corruption
cf566b57107c relnotes: add 6.2rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    92
 * Improve changelog-v2 upgrade system