Mercurial > hg
annotate relnotes/6.2 @ 51181:dcaa2df1f688
changelog: never inline changelog
The test suite mostly use small repositories, that implies that most changelog in the
tests are inlined. As a result, non-inlined changelog are quite poorly tested.
Since non-inline changelog are most common case for serious repositories, this
lack of testing is a significant problem that results in high profile issue like
the one recently fixed by 66417f55ea33 and 849745d7da89.
Inlining the changelog does not bring much to the table, the number of total
file saved is negligible, and the changelog will be read by most operation
anyway.
So this changeset is make it so we never inline the changelog, and de-inline the
one that are still inlined whenever we touch them.
By doing that, we remove the "dual code path" situation for writing new entry to
the changelog and move to a "single code path" situation. Having a single
code path simplify the code and make sure it is covered by test (if test cover
that situation obviously)
This impact all tests that care about the number of file and the exchange size,
but there is nothing too complicated in them just a lot of churn.
The churn is made "worse" by the fact rust will use the persistent nodemap on
any changelog now. Which is overall a win as it means testing the persistent
nodemap more and having less special cases.
In short, having inline changelog is mostly useless and an endless source of
pain. We get rid of it.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 11 Dec 2023 22:27:59 +0100 |
parents | f64261762f3d |
children |
rev | line source |
---|---|
49472
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
1 = Mercurial 6.2.2 = |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
2 |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
3 * fsmonitor: restore functionality by moving to new dirstate APIs |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
4 * dirstate-v2: fix data file transaction handling (issue6730) |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
5 * rust: fix behavior when matching files with multiple includes |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
6 * rust: widen range of compatible crates to help with packaging |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
7 * rust-status: ignored directories are now correctly only listed if opted into |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
8 * automation: improve Windows packaging tooling |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
9 * contrib: update Mercurial install in bootstrap environment |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
10 * Remove flakiness in some tests |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
11 * Improve portability of certain `tar` uses in tests |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
12 |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
13 = Mercurial 6.2.1 = |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
14 |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
15 * Fix SSL support in Python 3.6 |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
16 * git: make sure to fsdecode bookmark names everywhere (issue6723) |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
17 * git: add a missing reset_copy keyword argument to dirstate.set_tracked() |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
18 * git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472) |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
19 * packaging: update keyring on Windows to avoid spurious stacktraces |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
20 * packaging: bump dulwich to 0.20.45 |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
21 * Fix typos in documentation for debugdiscovery |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
22 * Miscellaneous improvements of debugdiscovery |
f64261762f3d
relnotes: add 6.2.1 and 6.2.2
Raphaël Gomès <rgomes@octobus.net>
parents:
49369
diff
changeset
|
23 |
49369 | 24 = Mercurial 6.2rc0 = |
25 | |
26 '''This is the first release to support Python 3.6+ ''only''''' | |
27 | |
28 == New Features == | |
29 * Introduce a way to auto-upgrade a repo for certain requirements (see `hg help config.format`) | |
30 * filemerge: add support for partial conflict resolution by external tool | |
31 * contrib: add a partial-merge tool for sorted lists (such as Python imports) | |
32 * revlog: reorder p1 and p2 when p1 is null and p2 is not while respecting issue6528 | |
33 * rhg: add support for ignoring all extensions | |
34 * completion: install completers to conventional locations | |
35 * revert: ask user to confirm before tracking new file when interactive | |
36 * Rust implementation now uses the new dirstate API | |
37 * sslutil: be less strict about which ciphers are allowed when using --insecure | |
38 * sslutil: support TLSV1_ALERT_PROTOCOL_VERSION reason code | |
39 * absorb: make `--edit-lines` imply `--apply-changes` | |
40 * diff: add help text to highlight the ability to do merge diffs | |
41 * censor: make rhg fall back to python when encountering a censored node | |
42 * clone: use better names for temp files | |
43 * debuglock: make the command more useful in non-interactive mode | |
44 * debugdeltachain: distinct between snapshot and other diffs | |
45 * debugindex: rename to debugindex debug-revlog-index | |
46 * Make debug-revlog-index give out more information | |
47 * sparse: use the rust code even when sparse is present | |
48 | |
49 == Bug Fixes == | |
50 * Python 3 bugfixes | |
51 * Windows bugfixes | |
52 * templates: make `firstline` filter not keep '\v', '\f' and similar | |
53 * rhg: sort unsupported extensions in error message | |
54 * Improve performance of all functions that extract the first line of a text | |
55 * crecord: avoid duplicating lines when reverting noeol->eol change | |
56 * Some config.path options are now discoverable via config | |
57 * mail: don't complain about a multi-word email.method | |
58 * bundlespec: do not overwrite bundlespec value with the config one | |
59 * bundlespec: do not check for `-` in the params portion of the bundlespec | |
60 * bundlespec: handle the presence of obsmarker part | |
61 * sparse: start moving away from the global variable for detection of usage | |
62 * rust-changelog: don't skip empty lines when iterating over changeset lines | |
63 * narrow: support debugupgraderepo | |
64 * bundle: quick fix to ludicrous performance penalty | |
65 * followlines: don't put Unicode directly into the .js file (issue6559) | |
66 * manifest: improve error message in case for tree manifest | |
67 * revlog: use %d to format int instead of %lu (issue6565) | |
68 * revlog: use appropriate format char for int ("i" instead of I") | |
69 * worker: stop relying on garbage collection to release memoryview | |
70 * worker: implement _blockingreader.readinto() (issue6444) | |
71 * worker: avoid potential partial write of pickled data | |
72 | |
73 == Backwards Compatibility Changes == | |
74 * '''Removed Python 2 support''': this includes a lot of cleanup in our codebase, automation, testing, etc. | |
75 * debugindex: rename to debugindex debug-revlog-index | |
76 | |
77 == Miscellaneous == | |
78 | |
79 * Fix typos and add missing items from documentation | |
80 * dirstate-tree: optimize HashMap lookups with raw_entry_mut | |
81 * Rust dependencies have been upgraded | |
82 * revlog: rank computation is done by Rust when available | |
83 * Improve discovery test tooling | |
84 * Audit the number of queries done in discovery | |
85 * Improved .hgignore of the mercurial-devel repository itself | |
86 * Improve test coverage of dirstate-v2 | |
87 * rust-requirements: allow loading repos with `bookmarksinstore` requirement | |
88 * Various Rust refactorings to help with revlog management | |
89 * Improve debugability of Rust structs | |
90 * Improve unit testing of the Rust dirstatemap | |
91 * Improve robustness of the Rust dirstatemap to corruption | |
92 * Improve changelog-v2 upgrade system |