annotate relnotes/5.5 @ 48383:4237be881bb6

status: adapt the "keyword" extensions to gather stats at lookup time See main core code for details. We don't factor the code in a common function yet, because we will have to adapt a bit more things in the keyword case at the end of the series. Differential Revision: https://phab.mercurial-scm.org/D11787
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 18 Nov 2021 22:49:05 +0100
parents 53a6febafc66
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
1 == New Features ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
2
45062
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
3 * clonebundles can be annotated with the expected memory requirements
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
4 using the `REQUIREDRAM` option. This allows clients to skip
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
5 bundles created with large zstd windows and fallback to larger, but
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
6 less demanding bundles.
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
7
45169
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
8 * The `phabricator` extension now provides more functionality of the
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
9 arcanist CLI like changing the status of a differential.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
10
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
11 * Phases processing is much faster, especially for repositories with
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
12 old non-public changesets.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
13
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
14
44367
9dab3fa64325 copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44365
diff changeset
15 == New Experimental Features ==
44343
8561ad49915d revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents: 44289
diff changeset
16
44905
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
17 * The core of some hg operations have been (and are being)
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
18 implemented in rust, for speed. `hg status` on a repository with
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
19 300k tracked files goes from 1.8s to 0.6s for instance.
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
20 This has currently been tested only on linux, and does not build on
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
21 windows. See rust/README.rst in the mercurial repository for
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
22 instructions to opt into this.
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44398
diff changeset
23
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
24 * An experimental config `rewrite.empty-successor` was introduced to control
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
25 what happens when rewrite operations result in empty changesets.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
26
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
27
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
28 == Bug Fixes ==
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
29
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
30 * For the case when connected to a TTY, stdout was fixed to be line-buffered
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
31 on Python 3 (where it was block-buffered before, causing the process to seem
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
32 hanging) and Windows on Python 2 (where it was unbuffered before).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
33
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
34 * Subversion sources of the convert extension were fixed to work on Python 3.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
35
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
36 * Subversion sources of the convert extension now interpret the encoding of
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
37 URLs like Subversion. Previously, there were situations where the convert
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
38 extension recognized a repository as present but Subversion did not, and
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
39 vice versa.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
40
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
41 * The empty changeset check of in-memory rebases was fixed to match that of
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
42 normal rebases (and that of the commit command).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
43
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
44 * The push command now checks the correct set of outgoing changesets for
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
45 obsolete and unstable changesets. Previously, it could happen that the check
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
46 prevented pushing changesets which were already on the server.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
47
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
48
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
49 == Backwards Compatibility Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
50
45190
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
51 * Mercurial now requires at least Python 2.7.9 or a Python version that
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
52 backported modern SSL/TLS features (as defined in PEP 466), and that Python
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
53 was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
54 (likely this requires the OpenSSL version to be at least 1.0.1).
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
55
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
56 * The `hg perfwrite` command from contrib/perf.py was made more flexible and
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
57 changed its default behavior. To get the previous behavior, run `hg perfwrite
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
58 --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`.
44996
c2df0bca0dfa perf: make `hg perfwrite` more flexible
Manuel Jacob <me@manueljacob.de>
parents: 44905
diff changeset
59
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
60 * The absorb extension now preserves changesets with no file changes that can
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
61 be created by the commit command (those which change the branch name
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
62 compared to the parent and those closing a branch head).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
63
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
64
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65 == Internal API Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66
44853
ba5688e3b3bd relnotes: add API change note per request in D8502
Augie Fackler <augie@google.com>
parents: 44827
diff changeset
67 * logcmdutil.diffordiffstat() now takes contexts instead of nodes.
ba5688e3b3bd relnotes: add API change note per request in D8502
Augie Fackler <augie@google.com>
parents: 44827
diff changeset
68
44856
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
69 * The `mergestate` class along with some related methods and constants have
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
70 moved from `mercurial.merge` to a new `mercurial.mergestate` module.
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
71
45169
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
72 * The `phasecache` class now uses sparse dictionaries for the phase data.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
73 New accessors are provided to detect if any non-public changeset exists
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
74 (`hasnonpublicphases`) and get the correponsponding root set
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
75 (`nonpublicphaseroots`).
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
76
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
77 * The `stdin`, `stdout` and `stderr` attributes of the `mercurial.pycompat`
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
78 module were removed. Instead, the attributes of same name from the
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
79 `mercurial.utils.procutil` module should be used, which provide more
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
80 consistent behavior across Python versions and platforms.