relnotes/6.9
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 13 Nov 2024 13:33:36 +0100
branchstable
changeset 52245 d57d1606049c
parent 52142 63c0075afefa
child 52251 31d45a1cbc47
permissions -rw-r--r--
clone: properly exclude rev-branch-cache from post clone cache warming When adding "CACHE_REV_BRANCH" to "CACHES_ALL" in e51161b12c7e, I did not expected it to impact the clone steps. However the "CACHES_POST_CLONE" set is created rather creatively. (we should fix that, but not on stable) The benchmark caught a quite significant slowdown one hardlink and ssh-stream clones. Such slow down can be reduced to around ~5% by fully warming the cache before the clone. However keeping this expensive step away from the clone operation fully fix the slowdown and preserve the initial intend. Example slowdow for hardlink clone ### benchmark.name = hg.command.clone # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.explicit-rev = none # benchmark.variants.issue6528 = default # benchmark.variants.protocol = local-hardlink # benchmark.variants.pulled-delta-reuse-policy = default # benchmark.variants.resource-usage = default # benchmark.variants.validate = default ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog 6.8.2: 19.799752 6.9rc0: 29.017493 (+46.55%, +9.22) after: 19.929341 ## data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog 6.8.2: 0.468020 6.9rc0: 1.701294 (+263.51%, +1.23) after: 0.471934 ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog 6.8.2: 2.397564 6.9rc0: 5.666641 (+137.41%, +3.28) after: 2.428085
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52142
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     1
= Mercurial 6.9rc0 =
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     2
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     3
/!\ These are release notes for a release candidate version. Any and all points can be reverted before the final release.
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     4
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     5
== New Features ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     6
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     7
 * exchange: improve computation of relevant markers for large repos
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     8
 * Add a Rust fast-path to speed up update (also for `clone`) from null (up to 4x faster) 
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     9
 * Introduced a new rev-branch-cache version (v2) that is mmap-resistant
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    10
 * The branchmap's performance was improved
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    11
 * Improved the performance of the fix for issue6528
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    12
 * clonebundles: allow manifest to specify sha256 digest of bundles
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    13
 * merge: improve working-copy mtime race handling
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    14
 * profiling: add a py-spy profiling backend
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    15
 * revlog: use an explicit config option to enable mmap usage for index
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    16
 * revlog: use mmap by default is pre-population is available
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    17
 * mmap: populate the mapping by default
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    18
 * mmap: populate mapping in a background thread
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    19
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    20
== Experimental features ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    21
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    22
 * merge: add a config to allow conflict-free merge of changes on adjacent lines
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    23
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    24
== Bug Fixes ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    25
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    26
 * `config.server.validate` now also works on narrowed repositories
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    27
 * convert: fix various leaked file descriptors
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    28
 * stream: prefer keeping an open file handle to volatile file instead of copy
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    29
 * dummysmtpd: fix EOF handling on newer versions of OpenSSL
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    30
 * cext: correct the argument handling of `b85encode()`
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    31
 * branchmap-v3: make sure we write the cache after detecting pure-topo mode
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    32
 * rust: apply clippy lints
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    33
 * copies: make sure deleted copy info do not overwriting unrelated ones
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    34
 * rebase: don't call rewriteutil.precheck() with to-be-skipped commits
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    35
 * phabricator: correct the default value of `phabhunk.corpus`
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    36
 * linelog: correct the default value of `annotateresult.lines`
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    37
 * largefiles: avoid a potentially undefined variable in exception case
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    38
 * httppeer: move a variable to avoid a bad reference before assignment warning
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    39
 * httppeer: avoid another bad reference before assignment warning
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    40
 * tests: use packaging from setuptools instead of deprecated distutils
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    41
 * manifest: type and fix unhexlify
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    42
 * manifest: align some vfs option access on the fact we might not have options
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    43
 * scmutils: read the requires file before writing to avoid unnecessary rewrite
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    44
 * debugsparse: stop taking the store lock
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    45
 * sparse: reliably avoid writing to store without a lock
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    46
 * largefiles: sync up `largefilesdirstate` methods with `dirstate` base class
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
 * shelve: raise an error when loading a corrupt state file in an impossible case
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
 * monotone: replace %s interpolation with appropriate numeric specifiers
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
 * shelve: consistently convert exception to bytes via `stringutil.forcebytestr`
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
 * remotefilelog: honor the `--format` arg of the `debugindex` command
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
 * remotefilelog: adapt the `debugindex` command to past API changes
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
 * run-tests: add color to the progress output
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
 * archive: defer opening the output until a file is matched
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
 * help: add :config-doc:`section.key` shorthand to insert documentation
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
 * censor: document the censor.policy option (issue6909)
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
 * rust-revlog: don't try to open the data file if the index is empty
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
 * bundlerepo: fix mismatches with repository and revlog classes
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
 * revlog: make `clearcaches()` signature consistent with ManifestRevlog
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
 * unionrepo: fix mismatches with revlog classes
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
 * keepalive: fix a signature mismatch for a http.client.HTTPResponse subclass
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
 * lfs: fix various signature mismatches for vfs subclasses
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
 * store: fix a signature mismatch for a vfs subclass
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
 * util: avoid a leaked file descriptor in `util.makelock()` exceptional case
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
 * statichttprepo: fix `httprangereader.read()` for py3
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
 * util: make `mmapread()` work on Windows again
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
 * mdiff: tweak calls into `bdiff.fixws` to match its type hints
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
 * base85: avoid a spurious use-before-initialized warning in `pure` module
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
 * install: static data moved from setup.py to pyproject.toml
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
 * upgrade: disable using the parallel workers optimization on macOS
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
 * doc: generate separate commands/topics/extension pages
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
 * extdiff: don't run gui programs when in a cli-only environment
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
 * clonebundles: stop shell quoting `HGCB_BUNDLE_BASENAME` environment variable
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
 * rev-branch-cache: disable mmapping by default on Windows
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
== Backwards Compatibility Changes ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
 * This release drops support for Python 3.6 and 3.7.
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    79
== Internal API Changes ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    80
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    81
 * manifest: deprecated readdelta and readfast
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    82
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    83
== Miscellaneous ==
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    84
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    85
 * http: reuse Python's implementation of read/readline/readinto
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    86
 * http: use urllib's cookie handler
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    87
 * rev-branch-cache: schedule a write of the "v2" format if we read from "v1"
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    88
 * rev-branch-cache: have debugupdatecache warm rbc too
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    89
 * rev-branch-cache: reenable memory mapping of the revision data
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    90
 * debugwireproto: redo logging to also work for https
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    91
 * rust: use `.cargo/config.toml` instead of `.cargo/config`
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    92
 * A whole bunch of typing improvements, which in turn found many bugs
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    93
 * Test suite improvements
63c0075afefa relnotes: add 6.9rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    94
 * Various packaging improvements