##// END OF EJS Templates
relnotes: add 6.4.1
Raphaël Gomès -
r51680:83ea6ce4 6.4.1 stable
parent child Browse files
Show More
@@ -1,169 +1,182 b''
1 = Mercurial 6.4.1 =
2
3 * rhg: fix a bug in path encoding
4 * rhg: don't crash on empty directory names in path_encode, just in case
5 * commands: correct documentation of hg serve’s --ipv6 options
6 * run-tests: remove obsolete coverage check and packaging import (issue6805)
7 * chg: populate CHGHG if not set
8 * match: sort patterns before compiling them into a regex
9 * match: match explicit file using a set
10 * rebase: do not cleanup the working copy when --dry-run is used (issue6802)
11 * sslutil: set context security level for legacy tls testing (issue6760)
12
13
1 = Mercurial 6.4 =
14 = Mercurial 6.4 =
2
15
3 == New Features ==
16 == New Features ==
4
17
5 * There is a new internal merge tool called `internal:union-other-first`.
18 * 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.
19 It works like `internal:union` but add other side on top of local.
7 * Pullbundles are enabled by default
20 * Pullbundles are enabled by default
8 * delta-find: add a way to control the number of bases tested at the same time
21 * 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
22 * changelog-v2: add a configuration to disable rank computation
10 * debug: add an option to display statistic about a bundling operation
23 * debug: add an option to display statistic about a bundling operation
11 * debug: add an option to display statistic about a unbundling operation
24 * debug: add an option to display statistic about a unbundling operation
12 * delta-find: add a delta-reuse policy that blindly accepts incoming deltas
25 * delta-find: add a delta-reuse policy that blindly accepts incoming deltas
13 * debug: add debug-revlog-stats command
26 * debug: add debug-revlog-stats command
14 * dirstate: add narrow support to `verify`
27 * dirstate: add narrow support to `verify`
15 * verify: also check dirstate
28 * verify: also check dirstate
16 * commit: add --draft option to use draft phase
29 * commit: add --draft option to use draft phase
17 * amend: add a --draft option to set phase to draft
30 * amend: add a --draft option to set phase to draft
18 * debug: add a config to abort update early
31 * debug: add a config to abort update early
19 * rhg: implement checkexec to support weird filesystems
32 * rhg: implement checkexec to support weird filesystems
20 * debugshell: allow commands to be specified as a CLI argument
33 * debugshell: allow commands to be specified as a CLI argument
21 * rhg-files: add support for narrow when specifying a revision
34 * rhg-files: add support for narrow when specifying a revision
22 * rust-narrow: enable narrow support for plain `rhg files`
35 * rust-narrow: enable narrow support for plain `rhg files`
23
36
24 == Bug Fixes ==
37 == Bug Fixes ==
25
38
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.
39 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
40
28 * lfs: improve an exception message for blob corruption detected on transfer
41 * lfs: improve an exception message for blob corruption detected on transfer
29 * revlog: use the user facing filename as the display_id for filelogs
42 * revlog: use the user facing filename as the display_id for filelogs
30 * rust-status: query fs traversal metadata lazily
43 * rust-status: query fs traversal metadata lazily
31 * shelve: add Shelf.changed_files for resolving changed files in a plugin
44 * shelve: add Shelf.changed_files for resolving changed files in a plugin
32 * demandimport: ensure lazyloaderex sets loader attributes (issue6725)
45 * demandimport: ensure lazyloaderex sets loader attributes (issue6725)
33 * typing: fix a syntax error in mercurial/cext/bdiff.pyi
46 * typing: fix a syntax error in mercurial/cext/bdiff.pyi
34 * cffi: fix a bytes vs str issue on macOS when listing directories
47 * cffi: fix a bytes vs str issue on macOS when listing directories
35 * changelog-v2: fix the docket `struct`
48 * changelog-v2: fix the docket `struct`
36 * schemes: fix a broken check for drive letter conflicts
49 * schemes: fix a broken check for drive letter conflicts
37 * worker: avoid reading 1 byte at a time from the OS pipe
50 * worker: avoid reading 1 byte at a time from the OS pipe
38 * rust-narrow: fix loop that never loops
51 * rust-narrow: fix loop that never loops
39 * setup: Ensure target directory exists with building rust extension
52 * setup: Ensure target directory exists with building rust extension
40 * dirstate: invalidate changes when parent-change fails
53 * dirstate: invalidate changes when parent-change fails
41 * dirstate: warn about non-explicitly rolledback parent-change
54 * dirstate: warn about non-explicitly rolledback parent-change
42 * dirstate: write dirstate on successful exit of changing_parents context
55 * dirstate: write dirstate on successful exit of changing_parents context
43 * largefile: make sure we hold the lock when updating the second dirstate
56 * largefile: make sure we hold the lock when updating the second dirstate
44 * dirstate: enforce holding the lock while doing any changes
57 * dirstate: enforce holding the lock while doing any changes
45 * run-tests: stop ignoring venv-installed packages
58 * run-tests: stop ignoring venv-installed packages
46 * transaction: run abort callback in all cases
59 * transaction: run abort callback in all cases
47 * transaction: quietly rollback if no other changes than temporary files
60 * transaction: quietly rollback if no other changes than temporary files
48 * debugrebuilddirstate: double check that no transaction is open
61 * debugrebuilddirstate: double check that no transaction is open
49 * dirstate: do not write an empty dirstate just for backup
62 * dirstate: do not write an empty dirstate just for backup
50 * locking: take the `wlock` for the full `hg add` duration
63 * locking: take the `wlock` for the full `hg add` duration
51 * locking: take the `wlock` for the full `hg remove` duration
64 * locking: take the `wlock` for the full `hg remove` duration
52 * locking: take the `wlock` for the full `hg forget` duration
65 * locking: take the `wlock` for the full `hg forget` duration
53 * locking: take the `wlock` for the full `hg addremove` duration
66 * locking: take the `wlock` for the full `hg addremove` duration
54 * locking: grab the wlock before touching the dirstate in `perfdirstatewrite`
67 * locking: grab the wlock before touching the dirstate in `perfdirstatewrite`
55 * locking: hold the wlock for the full duration of the "keyword demo"
68 * locking: hold the wlock for the full duration of the "keyword demo"
56 * mq: properly take the wlock during the full qfold operation
69 * mq: properly take the wlock during the full qfold operation
57 * dirstate: invalidate the dirstate change on transaction failure
70 * dirstate: invalidate the dirstate change on transaction failure
58 * status: fix post status writing
71 * status: fix post status writing
59 * status: fix post status invalidation
72 * status: fix post status invalidation
60 * dirstate: avoid transaction backup/restore if we do not hold the lock
73 * dirstate: avoid transaction backup/restore if we do not hold the lock
61 * rollback: explicitly skip dirstate rollback when applicable
74 * rollback: explicitly skip dirstate rollback when applicable
62 * dirstate-guard: remove the feature
75 * dirstate-guard: remove the feature
63 * dirstate: make `restorebackup` more robust when it is a noop
76 * dirstate: make `restorebackup` more robust when it is a noop
64 * dirstate: generalize the dirstate's invalidation on transaction abort
77 * dirstate: generalize the dirstate's invalidation on transaction abort
65 * dirstate: detect potential fishy transaction patterns while changing
78 * dirstate: detect potential fishy transaction patterns while changing
66 * mq: write the dirstate before stripping
79 * mq: write the dirstate before stripping
67 * dirstate: explicitly backup the datafile
80 * dirstate: explicitly backup the datafile
68 * localrepo: enforce a clean dirstate when the transaction open
81 * localrepo: enforce a clean dirstate when the transaction open
69 * localrepo: "blindly" do a dirstate backup at the end of the transaction
82 * localrepo: "blindly" do a dirstate backup at the end of the transaction
70 * dirstate: remove the dedicated backup logic
83 * dirstate: remove the dedicated backup logic
71 * rhg: fix a bug in path_encode
84 * rhg: fix a bug in path_encode
72 * dirstate: invalidate on all exceptions
85 * dirstate: invalidate on all exceptions
73 * large-files: make sure we write newly initialized standin file early
86 * large-files: make sure we write newly initialized standin file early
74 * dirstate: warn if dirty when starting an edition
87 * dirstate: warn if dirty when starting an edition
75 * dirstate: track that changes are pending in a transaction
88 * dirstate: track that changes are pending in a transaction
76 * dirstate: distinct transaction callback from largefile
89 * dirstate: distinct transaction callback from largefile
77 * automv: lock the repository before searching for renames
90 * automv: lock the repository before searching for renames
78 * dirstate: only reload the dirstate when it may have changed
91 * dirstate: only reload the dirstate when it may have changed
79 * dirstate: cleanup the `_map` property cache
92 * dirstate: cleanup the `_map` property cache
80 * status: invalidate dirstate on LockError
93 * status: invalidate dirstate on LockError
81 * dirstate: check that dirstate is clean at the initial context opening
94 * dirstate: check that dirstate is clean at the initial context opening
82 * dirstate: have `running_status` write the dirstate when holding the lock
95 * dirstate: have `running_status` write the dirstate when holding the lock
83 * dirstate: have `running_status` warn when exiting with a dirty dirstate
96 * dirstate: have `running_status` warn when exiting with a dirty dirstate
84 * narrow: widden the lock context in `tracking`
97 * narrow: widden the lock context in `tracking`
85 * narrow: enforce that narrow spec is written within a transaction
98 * narrow: enforce that narrow spec is written within a transaction
86 * transaction: no longer explicitly cache phaseroots
99 * transaction: no longer explicitly cache phaseroots
87 * transaction: no longer explicitly cache bookmarks
100 * transaction: no longer explicitly cache bookmarks
88 * transaction: use the standard transaction mechanism to backup branch
101 * transaction: use the standard transaction mechanism to backup branch
89 * bundlerepo: handle changegroup induced phase movement in the associated method
102 * bundlerepo: handle changegroup induced phase movement in the associated method
90 * bundlerepo: apply phase data stored in the bundle instead of assuming `draft`
103 * bundlerepo: apply phase data stored in the bundle instead of assuming `draft`
91 * config-item: declare undeclared path suboption
104 * config-item: declare undeclared path suboption
92 * narrow: read pending file when applicable
105 * narrow: read pending file when applicable
93 * rust: fix building on macOS (issue6801)
106 * rust: fix building on macOS (issue6801)
94 * run-tests: fix a crash when using the coverage options
107 * run-tests: fix a crash when using the coverage options
95 * undo-files: also remove the undo.backupfiles
108 * undo-files: also remove the undo.backupfiles
96 * undo-files: cleanup backup when cleaning undos
109 * undo-files: cleanup backup when cleaning undos
97 * undo-files: clean existing files up before writing new one
110 * undo-files: clean existing files up before writing new one
98 * undo-files: cleanup legacy files when applicable
111 * undo-files: cleanup legacy files when applicable
99 * dirstate-v2: fix an incorrect handling of readdir errors
112 * dirstate-v2: fix an incorrect handling of readdir errors
100 * rust: update zstd dependency
113 * rust: update zstd dependency
101 * rust: upgrade `rayon` dependency
114 * rust: upgrade `rayon` dependency
102 * dirstate: fix the bug in [status] dealing with committed&ignored directories
115 * dirstate: fix the bug in [status] dealing with committed&ignored directories
103 * dirstate: fix a potential traceback when in `copy` and `rename`
116 * dirstate: fix a potential traceback when in `copy` and `rename`
104 * histedit: fix diff colors
117 * histedit: fix diff colors
105 * cext: fix for PyLong refactoring in CPython 3.12
118 * cext: fix for PyLong refactoring in CPython 3.12
106 * py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences
119 * py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences
107 * statprof: with Python 3.12, lineno is (more) often None
120 * statprof: with Python 3.12, lineno is (more) often None
108 * transaction: properly clean up backup file outside of .hg/store/
121 * transaction: properly clean up backup file outside of .hg/store/
109 * transaction: raise on backup restoration error
122 * transaction: raise on backup restoration error
110 * revlog: improve the robustness of the splitting process
123 * revlog: improve the robustness of the splitting process
111 * debugdeltachain: stop summing the same chain over and over
124 * debugdeltachain: stop summing the same chain over and over
112 * url: don't ignore timeout for https connections
125 * url: don't ignore timeout for https connections
113 * py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences
126 * py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences
114 * tests: accept a test output change in [tests/test-serve.t]
127 * tests: accept a test output change in [tests/test-serve.t]
115 * rust: fix thread cap (for real this time)
128 * rust: fix thread cap (for real this time)
116 * dirstate: try refreshing the changelog when parent are unknown
129 * dirstate: try refreshing the changelog when parent are unknown
117 * hooks: invalidate the repo after the hooks
130 * hooks: invalidate the repo after the hooks
118
131
119 == Backwards Compatibility Changes ==
132 == Backwards Compatibility Changes ==
120 * rust: upgrade supported Rust toolchain version
133 * rust: upgrade supported Rust toolchain version
121 * rust: move all crates in the main workspace to edition 2021
134 * rust: move all crates in the main workspace to edition 2021
122 * hg-core: upgrade `zstd` dependency
135 * hg-core: upgrade `zstd` dependency
123 * hg-core: upgrade `clap` dependency
136 * hg-core: upgrade `clap` dependency
124 * hg-core: upgrade all remaining dependencies
137 * hg-core: upgrade all remaining dependencies
125 * hg-cpython: upgrade dependencies
138 * hg-cpython: upgrade dependencies
126 * rhg: upgrade `clap` dependency
139 * rhg: upgrade `clap` dependency
127 * rhg: upgrade the remainder of the dependencies
140 * rhg: upgrade the remainder of the dependencies
128
141
129 == Internal API Changes ==
142 == Internal API Changes ==
130
143
131 * Many APIs around the dirstate have been made much stricter with regards to
144 * Many APIs around the dirstate have been made much stricter with regards to
132 locking and transaction handling
145 locking and transaction handling
133 * Some dirstate APIs have been renamed/removed
146 * Some dirstate APIs have been renamed/removed
134 * In both cases, you should get loud complaints in your tests if you do
147 * In both cases, you should get loud complaints in your tests if you do
135 something wrong.
148 something wrong.
136
149
137 == Miscellaneous ==
150 == Miscellaneous ==
138
151
139 * pullbundle support no longer requires setting a server-side option,
152 * pullbundle support no longer requires setting a server-side option,
140 providing a .hg/pullbundles.manifest according to the syntax specified in
153 providing a .hg/pullbundles.manifest according to the syntax specified in
141 'hg help -e clonebundles' is enough.
154 'hg help -e clonebundles' is enough.
142 * debug-delta-find: add a --source option
155 * debug-delta-find: add a --source option
143 * delta-find: add debug information about reuse of cached data
156 * delta-find: add debug information about reuse of cached data
144 * delta-find: set the default candidate chunk size to 10
157 * delta-find: set the default candidate chunk size to 10
145 * attr: vendor 22.1.0
158 * attr: vendor 22.1.0
146 * configitems: add a default value for "merge-tools.xxx.regappend"
159 * configitems: add a default value for "merge-tools.xxx.regappend"
147 * debugrevlog: display total stored information
160 * debugrevlog: display total stored information
148 * emitrevision: if we need to compute a delta on the fly, try p1 or p2 first
161 * emitrevision: if we need to compute a delta on the fly, try p1 or p2 first
149 * emitrevision: consider ancestors revision to emit as available base
162 * emitrevision: consider ancestors revision to emit as available base
150 * find-delta: pass the cache-delta usage policy alongside the cache-delta
163 * find-delta: pass the cache-delta usage policy alongside the cache-delta
151 * delta-find: use a smarter object for snapshot caching
164 * delta-find: use a smarter object for snapshot caching
152 * delta-find: use sets instead of list in the snapshot cache
165 * delta-find: use sets instead of list in the snapshot cache
153 * delta-find: make sure we only use newer full snapshot as candidate
166 * delta-find: make sure we only use newer full snapshot as candidate
154 * delta-find: use a single snapshot cache when applying a group to an object
167 * delta-find: use a single snapshot cache when applying a group to an object
155 * bundleoperation: optionnaly record the `remote` that produced the bundle
168 * bundleoperation: optionnaly record the `remote` that produced the bundle
156 * bundle: when forcing acceptance of incoming delta also accept snapshot
169 * bundle: when forcing acceptance of incoming delta also accept snapshot
157 * bundle: emit full snapshot as is, without doing a redelta
170 * bundle: emit full snapshot as is, without doing a redelta
158 * pathutil: slightly faster path audit in the common case
171 * pathutil: slightly faster path audit in the common case
159 * merge: don't pay for pathconflicts if there are none
172 * merge: don't pay for pathconflicts if there are none
160 * merge: short-circuit the _checkfs loop upon getting ENOENT
173 * merge: short-circuit the _checkfs loop upon getting ENOENT
161 * merge: disable the whole filesystem access loop if [_realfs] is false
174 * merge: disable the whole filesystem access loop if [_realfs] is false
162 * merge: cache the fs checks made during [_checkunknownfiles]
175 * merge: cache the fs checks made during [_checkunknownfiles]
163 * rust: use `logging_timer` instead of `micro_timer`
176 * rust: use `logging_timer` instead of `micro_timer`
164 * rust: run `cargo clippy`
177 * rust: run `cargo clippy`
165 * makefile: add `cargo clippy` to tests if cargo is available
178 * makefile: add `cargo clippy` to tests if cargo is available
166 * heptapod-ci: add `clippy` to the CI
179 * heptapod-ci: add `clippy` to the CI
167 * convert: use a priority queue for sorting commits, to make sorting faster
180 * convert: use a priority queue for sorting commits, to make sorting faster
168 * delta-find: adjust the default candidate group chunk size
181 * delta-find: adjust the default candidate group chunk size
169 * delta-find: declare the "paths..*:pulled-delta-reuse-policy option No newline at end of file
182 * delta-find: declare the "paths..*:pulled-delta-reuse-policy option
General Comments 0
You need to be logged in to leave comments. Login now