relnotes/6.7
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 15 Mar 2024 01:31:57 +0100
branchstable
changeset 51505 c9ceb4f60256
parent 51504 6b2aeeec3ed0
child 51512 2e6fde2ed01e
permissions -rw-r--r--
phases: avoid N² behavior in `advanceboundary` We allowed duplicated entries in the deque, which each entry could potentially insert all its ancestors. So advancing boundary for the full repository would mean each revision would walk all its ancestors, resulting in O(N²) iteration. For repository of any decent size, N² is quickly insane. We introduce a simple set to avoid this and get back to reasonable performance.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51504
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
     1
= Mercurial 6.7 =
51440
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     2
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     3
As usual, a *lot* of patches don't make it to this list.
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     4
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     5
== New Features ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     6
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     7
 * JSON templates can now use structured diffstat data
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     8
 * Support rhg status --rev --rev
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     9
 * The index for REVLOGv1 now has a Rust implementation
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    10
 * Improved `hg censor`'s output
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    11
 * censor: add a command flag to skip the head checks
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    12
 * censor: accept multiple revision in a single call
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    13
 * usage: add a `usage.repository-role` config
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    14
 * branchmap: use mmap for faster revbranchcache loading
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    15
 * crecord: enable search hotkeys (issue6834)
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    16
 * hg-core: separate timestamp and extra methods
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    17
 * annotate: limit output to range of lines
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    18
 * unbundle: faster computation of changed heads
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    19
 * Large improvements of some of the phases code (23950e39281f)
51504
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    20
 * rust-filepatterns: export glob_to_re function
51440
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    21
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    22
== New Experimental Features ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    23
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    24
 * Introduce `hg admin::chainsaw-update` for automation and *advanced* users
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    25
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    26
== Bug Fixes ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    27
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    28
 * templatekw: fix inconsistency of diffstat with diff.merge
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    29
 * The endless stream of Python 3 cleanups continues
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    30
 * Improved setup.py robustness
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    31
 * Improved test suite robustness
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    32
 * add: don't attempt to add back removed files unless explicitly listed
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    33
 * statprof: handle `lineno == None` in more cases
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    34
 * rust: fix cargo doc for hg-cpython
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    35
 * rust-python-index: don't panic on a corrupted index when calling from Python
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    36
 * debugindexstats: handle the lack of Rust support better
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    37
 * matchers: use correct method for finding index in vector
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    38
 * narrow: strip trailing `/` from manifest dir before matching it
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    39
 * cext: fix potential memory leaks of list items appended with PyList_Append
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    40
 * doc: document that labels must have a dot in them to have an effect
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    41
 * debugformat: fix formatting for compression level
51504
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    42
 * obsutil: sort metadata before comparing in geteffectflag()
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    43
 * crecord: drop calls to `curses.endwin()`
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    44
 * rust-index: don't use mutable borrow for head-diff computation
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    45
 * rust-index: don't use mutable borrow to computed filtered heads
6b2aeeec3ed0 relnotes: add 6.7
Raphaël Gomès <rgomes@octobus.net>
parents: 51440
diff changeset
    46
51440
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
== Backwards Compatibility Changes ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
Users of the Rust extensions and/or `rhg` should be aware that the new Rust
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
index can result in a performance degradation for push/pull on repositories
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
*not* using `persistent-nodemap` (see `hg help config.format.use-persistent-nodemap`).
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
If this is something that matters to you, please reach out to us as this is not
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
an insurmountable obstacle. This is a choice base on the assumption that
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
there are few people in this situation and our time should be spent on more
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
pressing matters.
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
== Internal API Changes ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
 * 62913:498017baa34b "cleanup: remove some code scheduled to be removed after 5.9"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
 * 62914:88ef80210d67 "cleanup: drop `dirstate.is_changing_parent` deprecated since 6.5"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
 * 62915:591845f89ada "cleanup: drop `path.pushloc` deprecated since 6.5"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
 * 62916:d8f65fc72e7b "cleanup: drop deprecated config attribute on the revlog class"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
 * 62917:5c9c41273367 "cleanup: turn `pathsuboption` deprecation warning into an error"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
 * 62918:7b837fabc990 "cleanup: turn `wrappedfunction` deprecation warning into an error"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
 * 62919:eda075d7b2ac "cleanup: turn `wrapfunction` deprecation warning into an error"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
 * 62920:c845479fc64d "cleanup: drop the `bytes` compatibility for attribute related function"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
 * 63464:dcaa2df1f688 "changelog: never inline changelog"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
 * 63465:a93e52f0b6ff "changelog: disallow delayed write on inline changesets"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
 * 63825:79cd29d598af "dirstate: make the `transaction` argument of `setbranch` mandatory"
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
== Miscellaneous ==
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
 * perf: support --template on perf::phases
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
 * perf: add a --as-push option to perf::unbundle
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
 * debug: add a debug::unbundle command that simulate the unbundle from a push
d1d48d18db37 relnotes: add 6.7rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
 * Lots of refactorings to prepare for performance improvements and remove tech debt