annotate relnotes/5.5 @ 51872:5e79783d4bc7

revlog: make `clearcaches()` signature consistent with ManifestRevlog I'm not sure if this a newly added bug, because of using a different version of pytype, or if the recent work around avoiding the zope interface types in the type checking phase (see 5eb98ea78fd7 and friends)... but pytype 2023.11.21 started flagging this series since it was last pushed ~6 weeks ago: File "/mnt/c/Users/Matt/hg/mercurial/bundlerepo.py", line 204, in <module>: Overriding method signature mismatch [signature-mismatch] Base signature: 'def mercurial.manifest.ManifestRevlog.clearcaches(self, clear_persisted_data: Any = ...) -> None'. Subclass signature: 'def mercurial.revlog.revlog.clearcaches(self) -> None'. Not enough positional parameters in overriding method. Maybe the multiple inheritance in `bundlerepo.bundlemanifest` is bad, but it seems like a `ManifestRevlog` is-a `revlog`, even though the class hierarchy isn't coded that way. Additionally, it looks like `revlog.clearcaches()` is dealing with some persistent data, so maybe this is useful to have there anyway. Also sprinkle some trivial type hints on the method, because there are other `clearcaches()` definitions in the codebase with these hints, and I don't feel like waiting for another pytype run to see if it cares that specifically about the signature matching.
author Matt Harbison <matt_harbison@yahoo.com>
date Wed, 18 Sep 2024 17:46:46 -0400
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.