annotate relnotes/5.8 @ 51721:ed28085827ec

typing: explicitly type some `mercurial.util` eol code to avoid @overload Unlike the previous commit, this makes a material difference in the generated stub file- the `pycompat.identity()` aliases generated an @overload like this: @overload def fromnativeeol(a: _T0) -> _T0: ... ... which might fail to detect a bad argument, like str. This drops the @overload for the 3 related methods, so there's a single definition for each. The `typelib.BinaryIO_Proxy` is used for subclassing (the same as was done in 8147abc05794), so that it is a `BinaryIO` type during type checking, but still inherits `object` at runtime. That way, we don't need to implement unused abstract methods.
author Matt Harbison <matt_harbison@yahoo.com>
date Fri, 19 Jul 2024 16:49:46 -0400
parents 32b527417ba3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47014
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
1 == New Features ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
2
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
3 * `hg purge` is now a core command using `--confirm` by default.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
4
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
5 * The `rev-branch-cache` is now updated incrementally whenever changesets
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
6 are added.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
7
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
8 * The new options `experimental.bundlecompthreads` and
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
9 `experimental.bundlecompthreads.<engine>` can be used to instruct
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
10 the compression engines for bundle operations to use multiple threads
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
11 for compression. The default is single threaded operation. Currently
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
12 only supported for zstd.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
13
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
14 == Default Format Change ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
15
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
16 These changes affects newly created repositories (or new clone) done with
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
17 Mercurial 5.8.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
18
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
19 * The `ZSTD` compression will now be used by default for new repositories
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
20 when available. This compression format was introduced in Mercurial 5.0,
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
21 released in May 2019. See `hg help config.format.revlog-compression` for
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
22 details.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
23
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
24 * Mercurial installation built with the Rust parts will now use the
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
25 "persistent nodemap" feature by default. This feature was introduced in
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
26 Mercurial 5.4 (May 2020). However Mercurial instalation built without the
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
27 fast Rust implementation will refuse to interract with them by default.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
28 This restriction can be lifted through configuration.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
29
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
30 See `hg help config.format.use-persistent-nodemap` for details
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
31
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
32 == New Experimental Features ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
33
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
34 * There's a new `diff.merge` config option to show the changes
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
35 relative to an automerge for merge changesets. This makes it
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
36 easier to detect and review manual changes performed in merge
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
37 changesets. It is supported by `hg diff --change`, `hg log -p`
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
38 `hg incoming -p`, and `hg outgoing -p` so far.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
39
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
40
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
41 == Bug Fixes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
42
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
43 * gracefully recover from inconsistent persistent-nodemap data from disk.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
44
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
45
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
46 == Backwards Compatibility Changes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
47
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
48 * In normal repositories, the first parent of a changeset is not null,
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
49 unless both parents are null (like the first changeset). Some legacy
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
50 repositories violate this condition. The revlog code will now
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
51 silentely swap the parents if this condition is tested. This can
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
52 change the output of `hg log` when explicitly asking for first or
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
53 second parent. The changesets "nodeid" are not affected.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
54
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
55
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
56 == Internal API Changes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
57
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
58 * `changelog.branchinfo` is deprecated and will be removed after 5.8.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
59 It is superseded by `changelogrevision.branchinfo`.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
60
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
61 * Callbacks for revlog.addgroup and the changelog._nodeduplicatecallback hook
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
62 now get a revision number as argument instead of a node.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
63
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
64 * revlog.addrevision returns the revision number instead of the node.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66 * `nodes.nullid` and related constants are being phased out as part of
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
67 the deprecation of SHA1. Repository instances and related classes
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
68 provide access via `nodeconstants` and in some cases `nullid` attributes.