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