relnotes/6.5
author Arseniy Alekseyev <aalekseyev@janestreet.com
Thu, 24 Oct 2024 17:35:53 +0200
changeset 52081 a021da4ec509
parent 51115 c083d9776cb2
permissions -rw-r--r--
merge: add a config to allow conflict-free merge of changes on adjacent lines This change adds a config to make it no longer a conflict to merge changes made on adjacent lines. The reason these changes are considered a conflict is that there's no region of text at the relevant position (sync region) that's kept unchanged by both sides of the merge. The problem can be solved by making the sync regions being a bit more powerful: we can keep a 0-length sync region if we find that a block unchanged by one side is ajacent to a block unchanged by the other side. Since these 0-length sync regions are emitted using the ~same algorithm as the normal non-empty sync regions, this change involves no arbitrary decisions and I expect it to work pretty well. 0-length sync regions do create an ambiguity in a special case where two pairs of adjacent regions "meet" at the same point. This corresponds to an insertion made at the same place by the two sides of the merge, and this still results in a conflict.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51115
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     1
= Mercurial 6.5.3 =
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     2
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     3
 * "hgweb: pass strings in WSGI environment correctly from wsgicgi"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     4
 * "perf: introduce more cache invalidation option in perf::tags"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     5
 * "perf: add a `--clear-fnode-cache-rev` argument to perf::tags"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     6
 * "perf: add a --update-last flag to perf::tags"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     7
 * "blackbox: add a option to duplicate output to stderr too"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     8
 * "tags: avoid expensive access to repo.changelog in a loop"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
     9
 * "revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    10
 * "httppeer: fix static-http: scheme autodetection (issue6833)"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    11
 * "tests: backed out changeset 8037ddacad47"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    12
 * "stream-clone: fix a crash when a repo with an empty revlog is cloned"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    13
 * "censor: accept censored revision during upgrade"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    14
 * "revlog: avoid opening and closing the file for each cloned revision"
c083d9776cb2 relnotes: add 6.5.3
Raphaël Gomès <rgomes@octobus.net>
parents: 50933
diff changeset
    15
50933
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    16
= Mercurial 6.5.2 =
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    17
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    18
 * hgweb: encode WSGI environment using the ISO-8859-1 codec
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    19
 * rhg: fix the bug where sparse config is interpreted as relglob instead of glob
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    20
 * gpg: fix an UnboundLocalError whenever using --force
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    21
 * transaction: fix __repr__() and make the default name bytes
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    22
 * setup: make the error "Unable to find a working hg binary" more informative
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    23
 * tests: avoid test environment affecting setup.py
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    24
 * run-tests: detect HGWITHRUSTEXT value
5a8b54201039 relnotes: add 6.5.2
Raphaël Gomès <rgomes@octobus.net>
parents: 50816
diff changeset
    25
50816
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    26
= Mercurial 6.5.1 =
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    27
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    28
 * A bunch of improvements to Python 3.12 compatibility
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    29
 * repoview: fix the filter created by `extrafilter`
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    30
 * Improve portability of the test suite
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    31
 * fncache: fix a bug that corrupts the fncache after transaction rollback
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    32
 * revlog: fix the naming scheme use by split temporary file
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    33
 * perf: fix perf::tags
787af4e0e8b7 relnotes: add 6.5.1
Raphaël Gomès <rgomes@octobus.net>
parents: 50748
diff changeset
    34
50748
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
    35
= Mercurial 6.5 =
50720
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    36
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    37
As usual, a lot of patches don't make it to this list since they're more internal.
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    38
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    39
== New Features ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    40
50748
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
    41
 * Improved Python 3.12 compatiblity
50720
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    42
 * configitems: enable changegroup3 by default (unless using infinitepush)
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    43
 * extras: expose 'retained_extras' for extensions to extend
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    44
 * stabletailgraph: implement stable-tail sort
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    45
 * stabletailgraph: naive version of leap computation
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    46
 * bundle: introduce a "v3" spec
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
 * clone-bundles: add a basic first version of automatic bundle generation
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
 * clone-bundles: garbage collect older bundle when generating new ones
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
 * clone-bundles: only regenerate the clone bundle when cached ration is low
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
 * clone-bundles: also control automation based on absolute number of revisions
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
 * clone-bundles: add a configuration to control auto-generation on changes
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
 * clone-bundles: introduce a command to refresh bundle
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
 * clone-bundles: add a command to clear all bundles
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
 * clone-bundles: add an option to generate bundles in the background
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
 * clonebundles: add support for inline (streaming) clonebundles
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
 * clonebundles: adds a auto-generate.serve-inline option
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
 * match: add `filepath:` pattern to match an exact filepath relative to the root
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
 * hgweb: add "children" into the JSON template for a changeset
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
 * hgweb: add support to explicitly access hidden changesets
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
 * pull: add --remote-hidden option and pass it through peer creation
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
 * hidden: add support for --remote-hidden to HTTP peer
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
 * hidden: support passing --hidden with `serve --stdio`
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
 * hidden: add support to explicitly access hidden changesets with SSH peers
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
 * perf: introduce a `perf::stream-locked-section` command
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
 * perf: add a function to find a stream version generator
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
 * perf: add support for stream-v3 during benchmark
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
 * perf: add a perf::stream-generate command
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
 * perf: add a perf::stream-consume
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
 * cli: make debugnodemap capable of inspecting an arbitrary nodemap
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
 * rust: configure MSRV in Clippy
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
 * rhg: make `rhg files` work if `ui.relative-files=true` is specified
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
 * rhg: support `rhg files` with `ui.relative-paths=false`
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
 * rhg: support `status --print0`
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
 * tree-manifest: allow `debugupgraderepo` to run on tree manifest repo
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
 * library: enable runpy invocation on mercurial package
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
 * library: incorporate demandimport into runpy invocation
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
 * exchange: allow passing no includes/excludes to `pull()`
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    79
== New Experimental Features ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    80
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    81
 * stream-clone: add an experimental v3 version of the protocol
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    82
 * stream-clone: support streamv3 on the cli [hg bundle]
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    83
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    84
== Bug Fixes ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    85
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    86
 * mail: add a missing argument to properly override starttls
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    87
 * bundle: include required phases when saving a bundle (issue6794)
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    88
 * outgoing: fix common-heads computation from `missingroots` argument
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    89
 * strip: do not include internal changeset in the strip backup
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    90
 * bundle: abort if the user request bundling of internal changesets
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    91
 * bundle: prevent implicit bundling of internal changeset
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    92
 * encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    93
 * sha1dc: Make sure SHA1DC_BIGENDIAN is set on Darwin/PowerPC
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    94
 * zstd: hack include order to ensure that our zstd.h is found
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    95
 * dirstate: better error messages when dirstate is corrupted
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    96
 * stream-clone: avoid opening a revlog in case we do not need it
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    97
 * treemanifest: make `updatecaches` update the nodemaps for all directories
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    98
 * rust-hg-core: move from `ouroboros` to `self_cell`
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    99
 * rust-dependencies: switch from `users` to `whoami`
50748
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   100
 * dirstate-v2: actually fix the dirstate-v2 upgrade race
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   101
 * dirstate: avoid leaking disk space in `hg debugrebuilddirstate`
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   102
 * clonebundles: add warning if auto-generate is enabled without formats
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   103
 * win32mbcs: unbyteify some strings for py3 support
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   104
 * rust-revlog: fix incorrect results with NULL_NODE prefixes
3ffc7209bbae relnotes: add 6.5 final
Raphaël Gomès <rgomes@octobus.net>
parents: 50720
diff changeset
   105
 * rust-revlog: fix RevlogEntry.data() for NULL_REVISION
50720
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   106
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   107
== Backwards Compatibility Changes ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   108
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   109
 * infinitepush: aggressively deprecated infinite push
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   110
 * narrow: indicated the default of 'Yes' when confirming auto-remove-includes
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   111
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   112
== Internal API Changes ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   113
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   114
 * Store walk was reworked to fix small race conditions in stream-clone and
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   115
   greatly improve its API robustness and flexibility.
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   116
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   117
== Miscellaneous ==
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   118
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   119
 * Typechecking support was improved in a lot of places
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   120
 * Removed more useless compat code for now unsupported Python versions
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   121
 * Sped up zstd usage in Rust contexts
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   122
 * revlog: add an exception hint when processing LFS flags without the extension
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   123
 * ui: keep the progress bar around when writing if stdout is not a tty
bb42988c7e15 relnotes: add 6.5rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
   124
 * transaction: use a ".bck" extension for all backup file