Mercurial > public > mercurial-scm > hg-stable
comparison relnotes/6.4 @ 50272:8a65b43457ab stable
relnotes: add 6.4 and empty next
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Thu, 02 Mar 2023 23:45:30 +0100 |
parents | |
children | f14864fffdca |
comparison
equal
deleted
inserted
replaced
50271:57ccfa91d819 | 50272:8a65b43457ab |
---|---|
1 = Mercurial 6.4rc0 = | |
2 | |
3 == New Features == | |
4 | |
5 * There is a new internal merge tool called `internal:union-other-first`. | |
6 It works like `internal:union` but add other side on top of local. | |
7 * Pullbundles are enabled by default | |
8 * delta-find: add a way to control the number of bases tested at the same time | |
9 * changelog-v2: add a configuration to disable rank computation | |
10 * debug: add an option to display statistic about a bundling operation | |
11 * debug: add an option to display statistic about a unbundling operation | |
12 * delta-find: add a delta-reuse policy that blindly accepts incoming deltas | |
13 * debug: add debug-revlog-stats command | |
14 * dirstate: add narrow support to `verify` | |
15 * verify: also check dirstate | |
16 * commit: add --draft option to use draft phase | |
17 * amend: add a --draft option to set phase to draft | |
18 * debug: add a config to abort update early | |
19 * rhg: implement checkexec to support weird filesystems | |
20 * debugshell: allow commands to be specified as a CLI argument | |
21 * rhg-files: add support for narrow when specifying a revision | |
22 * rust-narrow: enable narrow support for plain `rhg files` | |
23 | |
24 == Bug Fixes == | |
25 | |
26 Aside from the following (unordered) commits which made it through a manual filter, there are a bunch of typing improvements and fixes, removal of deprecated code and general code cleanup. | |
27 | |
28 * lfs: improve an exception message for blob corruption detected on transfer | |
29 * revlog: use the user facing filename as the display_id for filelogs | |
30 * rust-status: query fs traversal metadata lazily | |
31 * shelve: add Shelf.changed_files for resolving changed files in a plugin | |
32 * demandimport: ensure lazyloaderex sets loader attributes (issue6725) | |
33 * typing: fix a syntax error in mercurial/cext/bdiff.pyi | |
34 * cffi: fix a bytes vs str issue on macOS when listing directories | |
35 * changelog-v2: fix the docket `struct` | |
36 * schemes: fix a broken check for drive letter conflicts | |
37 * worker: avoid reading 1 byte at a time from the OS pipe | |
38 * rust-narrow: fix loop that never loops | |
39 * setup: Ensure target directory exists with building rust extension | |
40 * dirstate: invalidate changes when parent-change fails | |
41 * dirstate: warn about non-explicitly rolledback parent-change | |
42 * dirstate: write dirstate on successful exit of changing_parents context | |
43 * largefile: make sure we hold the lock when updating the second dirstate | |
44 * dirstate: enforce holding the lock while doing any changes | |
45 * run-tests: stop ignoring venv-installed packages | |
46 * transaction: run abort callback in all cases | |
47 * transaction: quietly rollback if no other changes than temporary files | |
48 * debugrebuilddirstate: double check that no transaction is open | |
49 * dirstate: do not write an empty dirstate just for backup | |
50 * locking: take the `wlock` for the full `hg add` duration | |
51 * locking: take the `wlock` for the full `hg remove` duration | |
52 * locking: take the `wlock` for the full `hg forget` duration | |
53 * locking: take the `wlock` for the full `hg addremove` duration | |
54 * locking: grab the wlock before touching the dirstate in `perfdirstatewrite` | |
55 * locking: hold the wlock for the full duration of the "keyword demo" | |
56 * mq: properly take the wlock during the full qfold operation | |
57 * dirstate: invalidate the dirstate change on transaction failure | |
58 * status: fix post status writing | |
59 * status: fix post status invalidation | |
60 * dirstate: avoid transaction backup/restore if we do not hold the lock | |
61 * rollback: explicitly skip dirstate rollback when applicable | |
62 * dirstate-guard: remove the feature | |
63 * dirstate: make `restorebackup` more robust when it is a noop | |
64 * dirstate: generalize the dirstate's invalidation on transaction abort | |
65 * dirstate: detect potential fishy transaction patterns while changing | |
66 * mq: write the dirstate before stripping | |
67 * dirstate: explicitly backup the datafile | |
68 * localrepo: enforce a clean dirstate when the transaction open | |
69 * localrepo: "blindly" do a dirstate backup at the end of the transaction | |
70 * dirstate: remove the dedicated backup logic | |
71 * rhg: fix a bug in path_encode | |
72 * dirstate: invalidate on all exceptions | |
73 * large-files: make sure we write newly initialized standin file early | |
74 * dirstate: warn if dirty when starting an edition | |
75 * dirstate: track that changes are pending in a transaction | |
76 * dirstate: distinct transaction callback from largefile | |
77 * automv: lock the repository before searching for renames | |
78 * dirstate: only reload the dirstate when it may have changed | |
79 * dirstate: cleanup the `_map` property cache | |
80 * status: invalidate dirstate on LockError | |
81 * dirstate: check that dirstate is clean at the initial context opening | |
82 * dirstate: have `running_status` write the dirstate when holding the lock | |
83 * dirstate: have `running_status` warn when exiting with a dirty dirstate | |
84 * narrow: widden the lock context in `tracking` | |
85 * narrow: enforce that narrow spec is written within a transaction | |
86 * transaction: no longer explicitly cache phaseroots | |
87 * transaction: no longer explicitly cache bookmarks | |
88 * transaction: use the standard transaction mechanism to backup branch | |
89 * bundlerepo: handle changegroup induced phase movement in the associated method | |
90 * bundlerepo: apply phase data stored in the bundle instead of assuming `draft` | |
91 * config-item: declare undeclared path suboption | |
92 * narrow: read pending file when applicable | |
93 | |
94 == Backwards Compatibility Changes == | |
95 * rust: upgrade supported Rust toolchain version | |
96 * rust: move all crates in the main workspace to edition 2021 | |
97 * hg-core: upgrade `zstd` dependency | |
98 * hg-core: upgrade `clap` dependency | |
99 * hg-core: upgrade all remaining dependencies | |
100 * hg-cpython: upgrade dependencies | |
101 * rhg: upgrade `clap` dependency | |
102 * rhg: upgrade the remainder of the dependencies | |
103 | |
104 == Internal API Changes == | |
105 | |
106 * Many APIs around the dirstate have been made much stricter with regards to | |
107 locking and transaction handling | |
108 * Some dirstate APIs have been renamed/removed | |
109 * In both cases, you should get loud complaints in your tests if you do | |
110 something wrong. | |
111 | |
112 == Miscellaneous == | |
113 | |
114 * pullbundle support no longer requires setting a server-side option, | |
115 providing a .hg/pullbundles.manifest according to the syntax specified in | |
116 'hg help -e clonebundles' is enough. | |
117 * debug-delta-find: add a --source option | |
118 * delta-find: add debug information about reuse of cached data | |
119 * delta-find: set the default candidate chunk size to 10 | |
120 * attr: vendor 22.1.0 | |
121 * configitems: add a default value for "merge-tools.xxx.regappend" | |
122 * debugrevlog: display total stored information | |
123 * emitrevision: if we need to compute a delta on the fly, try p1 or p2 first | |
124 * emitrevision: consider ancestors revision to emit as available base | |
125 * find-delta: pass the cache-delta usage policy alongside the cache-delta | |
126 * delta-find: use a smarter object for snapshot caching | |
127 * delta-find: use sets instead of list in the snapshot cache | |
128 * delta-find: make sure we only use newer full snapshot as candidate | |
129 * delta-find: use a single snapshot cache when applying a group to an object | |
130 * bundleoperation: optionnaly record the `remote` that produced the bundle | |
131 * bundle: when forcing acceptance of incoming delta also accept snapshot | |
132 * bundle: emit full snapshot as is, without doing a redelta | |
133 * pathutil: slightly faster path audit in the common case | |
134 * merge: don't pay for pathconflicts if there are none | |
135 * merge: short-circuit the _checkfs loop upon getting ENOENT | |
136 * merge: disable the whole filesystem access loop if [_realfs] is false | |
137 * merge: cache the fs checks made during [_checkunknownfiles] | |
138 * rust: use `logging_timer` instead of `micro_timer` | |
139 * rust: run `cargo clippy` | |
140 * makefile: add `cargo clippy` to tests if cargo is available | |
141 * heptapod-ci: add `clippy` to the CI | |
142 * convert: use a priority queue for sorting commits, to make sorting faster | |
143 * delta-find: adjust the default candidate group chunk size | |
144 * delta-find: declare the "paths..*:pulled-delta-reuse-policy option |