annotate relnotes/6.0 @ 49229:ed9170ff791a

bundle: quick fix to ludicrous performance penalty We tried a `hg bundle --base ':(tip^)' --rev 'all()'` on a large repository and it spent 3 minutes on this 2 list comprehensions. This change remove this cost. There are still a lot of low hanging fruits as the command still take 30 seconds. However this is a trivial patch with a massive speedup so I'll just sent it.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 17 May 2022 13:53:14 +0100
parents 60950aef856c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
48803
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
1 = Mercurial 6.0.3 =
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
2
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
3 * Fix an infinite loop in edge cases of the pure Python dirstate-v2 packer
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
4 * Fix a small race condition with deleted files in Rust-augmented status
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
5 * Small improvement to Python 3.11 compatibility
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
6 * Fixed some typos in help messages that caused missing sections
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
7 * Centos -> Rockylinux packaging
60950aef856c relnotes: add 6.0.3
Raphaël Gomès <rgomes@octobus.net>
parents: 48678
diff changeset
8
48678
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
9 = Mercurial 6.0.2 =
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
10
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
11 * Fix `hg incoming` and `hg outgoing` with remote subrepos on Windows
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
12 * Fix Rust build on MacOS
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
13 * Fix a (15 year old?) bug where some data loss could happen in a very tight race window (f38ae2d7390e + ccd9cb73125c)
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
14 * Remove support for running `hg unamend` on merge changesets at it was never actually implemented
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
15 * Fix stream-clone requirements filtering which caused some stream-clones to be unusable from an older version of Mercurial
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
16 * Rename dirstate-v2 configuration name from `exp-rc-dirstate-v2` to `use-dirstate-v2`. This was overlooked in `6.0`, the old name will be kept as an alias for compatibility.
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
17 * Fix a bug where the branchmap could point to uncommitted data
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
18
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
19 = Mercurial 6.0.1 =
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
20
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
21 * Improve documentation around Rust (see hg help rust) and rust-related actions
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
22 * Improve upgrade/downgrade edge cases for dirstate-v2
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
23 * Make the test suite nicer to big-endian platforms
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
24 * Make the test suite nicer to NetBSD
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
25 * Fix a performance regression on fsmonitor (issue6612)
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
26 * Add fixes for Python 3.10
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
27 * Fix a deadlock when using sparse and share-safe together
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
28
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
29 = Mercurial 6.0 =
75676122c2bf relnotes: add 6.0.1 and 6.0.2 notes
Raphaël Gomès <rgomes@octobus.net>
parents: 48310
diff changeset
30
48301
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
31 == New Features ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
32 * `debugrebuildfncache` now has an option to rebuild only the index files
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
33 * a new `bookmarks.mode` path option have been introduced to control the
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
34 bookmark update strategy during exchange with a peer. See `hg help paths` for
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
35 details.
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
36 * a new `bookmarks.mirror` option has been introduced. See `hg help bookmarks`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
37 for details.
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
38 * more commands support detailed exit codes when config `ui.detailed-exit-codes` is enabled
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
39
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
40 == Default Format Change ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
41
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
42 == New Experimental Features ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
43
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
44 * '''Major feature''': version 2 of the dirstate is available (the first version is as old as Mercurial itself). It allows for much faster working copy inspection (status, diff, commit, update, etc.) and richer information (symlink and exec info on Windows, etc.). The format has been frozen with room for some future evolution and the current implementations (Python, Python + C, Python + Rust or pure Rust) should be compatible with any future change or optimization that the format allows. You can get more information [[https://www.mercurial-scm.org/repo/hg/file/tip/mercurial/helptext/internals/dirstate-v2.txt | in the internal documentation]]
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
45 * Added a new `web.full-garbage-collection-rate` to control performance. See
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
46 de2e04fe4897a554b9ef433167f11ea4feb2e09c for more information
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
47 * Added a new `histedit.later-commits-first` option to affect the ordering of commits in `chistedit` to match the order in `hg log -G`. It will affect the text-based version before graduating from experimental.
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
48
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
49 == Bug Fixes ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
50
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
51 * `hg fix --working-dir` now correctly works when in an uncommitted merge state
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
52 * Unintentional duplicated calls to `hg fix`'s internals were removed, making it potentially much faster
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
53 * `rhg cat` can be called without a revision
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
54 * `rhg cat` can be called with the `.` revision
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
55 * `rhg cat` is more robust than before with regards to edge cases. Some still remain like a tag or bookmark that is ambiguous with a nodeid prefix, only nodeids (prefixed or not) are supported as of now.
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
56 * `rhg cat` is even faster
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
57 * `rhg` (Rust fast-path for `hg`) now supports the full config list syntax
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
58 * `rhg` now parses some corner-cases for revsets correctly
48310
229f5ee1a08a relnotes: update 6.0 with the last changes for the release
Raphaël Gomès <rgomes@octobus.net>
parents: 48301
diff changeset
59 * Fixed an `fsmonitor` on Python 3 during exception handling
48301
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
60 * Lots of Windows fixes
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
61 * Lots of miscellaneous other fixes
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
62 * Removed a CPython-specific compatibility hack to improve support for alternative Python implementations
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
63
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
64 == Backwards Compatibility Changes ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
65
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
66
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
67 == Internal API Changes ==
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
68
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
69 The following functions have been removed:
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
70
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
71 * `dirstate.normal`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
72 * `dirstate.normallookup`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
73 * `dirstate.otherparent`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
74 * `dirstate.add`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
75 * `dirstate.addfile`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
76 * `dirstate.remove`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
77 * `dirstate.drop`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
78 * `dirstate.dropfile`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
79 * `dirstate.__getitem__`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
80 * `dirstatemap.nonnormalentries`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
81 * `dirstatemap.nonnormalset`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
82 * `dirstatemap.otherparentset`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
83 * `dirstatemap.non_normal_or_other_parent_paths`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
84 * `dirstateitem.dm_nonnormal`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
85 * `dirstateitem.dm_otherparent`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
86 * `dirstateitem.merged_removed`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
87 * `dirstateitem.from_p2`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
88 * `dirstateitem.merged`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
89 * `dirstateitem.new_merged`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
90 * `dirstateitem.new_added`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
91 * `dirstateitem.new_from_p2`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
92 * `dirstateitem.new_possibly_dirty`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
93 * `dirstateitem.new_normal`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
94 * `dirstateitem.from_p2_removed`
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
95
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
96 Miscellaneous:
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
97
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
98 * `wireprotov1peer`'s `batchable` is now a simple function and not a generator
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
99 anymore
9327ece2bc6f relnotes: add 6.0 release notes
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
100 * The Rust extensions (and by extension the experimental `rhg status`) only use a tree-based dirstate in-memory, even when using dirstate-v1. See bf8837e3d7cec40fe649c47163a3154dda03fa16 for more details
48310
229f5ee1a08a relnotes: update 6.0 with the last changes for the release
Raphaël Gomès <rgomes@octobus.net>
parents: 48301
diff changeset
101 * The Rust minimum supported version is now 1.48.0 in accordance with out policy of keeping up with Debian stable
229f5ee1a08a relnotes: update 6.0 with the last changes for the release
Raphaël Gomès <rgomes@octobus.net>
parents: 48301
diff changeset
102 * The test harness plays nicer with the NixOS sandbox