relnotes/6.4
branchstable
changeset 50272 8a65b43457ab
child 50357 f14864fffdca
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/relnotes/6.4	Thu Mar 02 23:45:30 2023 +0100
@@ -0,0 +1,144 @@
+= Mercurial 6.4rc0 =
+
+== New Features ==
+
+ * There is a new internal merge tool called `internal:union-other-first`.
+   It works like `internal:union` but add other side on top of local.
+ * Pullbundles are enabled by default
+ * delta-find: add a way to control the number of bases tested at the same time
+ * changelog-v2: add a configuration to disable rank computation
+ * debug: add an option to display statistic about a bundling operation
+ * debug: add an option to display statistic about a unbundling operation
+ * delta-find: add a delta-reuse policy that blindly accepts incoming deltas
+ * debug: add debug-revlog-stats command
+ * dirstate: add narrow support to `verify`
+ * verify: also check dirstate
+ * commit: add --draft option to use draft phase
+ * amend: add a --draft option to set phase to draft
+ * debug: add a config to abort update early
+ * rhg: implement checkexec to support weird filesystems
+ * debugshell: allow commands to be specified as a CLI argument
+ * rhg-files: add support for narrow when specifying a revision
+ * rust-narrow: enable narrow support for plain `rhg files`
+
+== Bug Fixes ==
+
+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.
+
+ * lfs: improve an exception message for blob corruption detected on transfer
+ * revlog: use the user facing filename as the display_id for filelogs
+ * rust-status: query fs traversal metadata lazily
+ * shelve: add Shelf.changed_files for resolving changed files in a plugin
+ * demandimport: ensure lazyloaderex sets loader attributes (issue6725)
+ * typing: fix a syntax error in mercurial/cext/bdiff.pyi
+ * cffi: fix a bytes vs str issue on macOS when listing directories
+ * changelog-v2: fix the docket `struct`
+ * schemes: fix a broken check for drive letter conflicts
+ * worker: avoid reading 1 byte at a time from the OS pipe
+ * rust-narrow: fix loop that never loops
+ * setup: Ensure target directory exists with building rust extension
+ * dirstate: invalidate changes when parent-change fails
+ * dirstate: warn about non-explicitly rolledback parent-change
+ * dirstate: write dirstate on successful exit of changing_parents context
+ * largefile: make sure we hold the lock when updating the second dirstate
+ * dirstate: enforce holding the lock while doing any changes
+ * run-tests: stop ignoring venv-installed packages
+ * transaction: run abort callback in all cases
+ * transaction: quietly rollback if no other changes than temporary files
+ * debugrebuilddirstate: double check that no transaction is open
+ * dirstate: do not write an empty dirstate just for backup
+ * locking: take the `wlock` for the full `hg add` duration
+ * locking: take the `wlock` for the full `hg remove` duration
+ * locking: take the `wlock` for the full `hg forget` duration
+ * locking: take the `wlock` for the full `hg addremove` duration
+ * locking: grab the wlock before touching the dirstate in `perfdirstatewrite`
+ * locking: hold the wlock for the full duration of the "keyword demo"
+ * mq: properly take the wlock during the full qfold operation
+ * dirstate: invalidate the dirstate change on transaction failure
+ * status: fix post status writing
+ * status: fix post status invalidation
+ * dirstate: avoid transaction backup/restore if we do not hold the lock
+ * rollback: explicitly skip dirstate rollback when applicable
+ * dirstate-guard: remove the feature
+ * dirstate: make `restorebackup` more robust when it is a noop
+ * dirstate: generalize the dirstate's invalidation on transaction abort
+ * dirstate: detect potential fishy transaction patterns while changing
+ * mq: write the dirstate before stripping
+ * dirstate: explicitly backup the datafile
+ * localrepo: enforce a clean dirstate when the transaction open
+ * localrepo: "blindly" do a dirstate backup at the end of the transaction
+ * dirstate: remove the dedicated backup logic
+ * rhg: fix a bug in path_encode
+ * dirstate: invalidate on all exceptions
+ * large-files: make sure we write newly initialized standin file early
+ * dirstate: warn if dirty when starting an edition
+ * dirstate: track that changes are pending in a transaction
+ * dirstate: distinct transaction callback from largefile
+ * automv: lock the repository before searching for renames
+ * dirstate: only reload the dirstate when it may have changed
+ * dirstate: cleanup the `_map` property cache
+ * status: invalidate dirstate  on LockError
+ * dirstate: check that dirstate is clean at the initial context opening
+ * dirstate: have `running_status` write the dirstate when holding the lock
+ * dirstate: have `running_status` warn when exiting with a dirty dirstate
+ * narrow: widden the lock context in `tracking`
+ * narrow: enforce that narrow spec is written within a transaction
+ * transaction: no longer explicitly cache phaseroots
+ * transaction: no longer explicitly cache bookmarks
+ * transaction: use the standard transaction mechanism to backup branch
+ * bundlerepo: handle changegroup induced phase movement in the associated method
+ * bundlerepo: apply phase data stored in the bundle instead of assuming `draft`
+ * config-item: declare undeclared path suboption
+ * narrow: read pending file when applicable
+
+== Backwards Compatibility Changes ==
+ * rust: upgrade supported Rust toolchain version
+ * rust: move all crates in the main workspace to edition 2021
+ * hg-core: upgrade `zstd` dependency
+ * hg-core: upgrade `clap` dependency
+ * hg-core: upgrade all remaining dependencies
+ * hg-cpython: upgrade dependencies
+ * rhg: upgrade `clap` dependency
+ * rhg: upgrade the remainder of the dependencies
+
+== Internal API Changes ==
+
+ * Many APIs around the dirstate have been made much stricter with regards to
+   locking and transaction handling
+ * Some dirstate APIs have been renamed/removed
+ * In both cases, you should get loud complaints in your tests if you do
+   something wrong.
+
+== Miscellaneous ==
+
+ * pullbundle support no longer requires setting a server-side option,
+   providing a .hg/pullbundles.manifest according to the syntax specified in
+   'hg help -e clonebundles' is enough.
+ * debug-delta-find: add a --source option
+ * delta-find: add debug information about reuse of cached data
+ * delta-find: set the default candidate chunk size to 10
+ * attr: vendor 22.1.0
+ * configitems: add a default value for "merge-tools.xxx.regappend"
+ * debugrevlog: display total stored information
+ * emitrevision: if we need to compute a delta on the fly, try p1 or p2 first
+ * emitrevision: consider ancestors revision to emit as available base
+ * find-delta: pass the cache-delta usage policy alongside the cache-delta
+ * delta-find: use a smarter object for snapshot caching
+ * delta-find: use sets instead of list in the snapshot cache
+ * delta-find: make sure we only use newer full snapshot as candidate
+ * delta-find: use a single snapshot cache when applying a group to an object
+ * bundleoperation: optionnaly record the `remote` that produced the bundle
+ * bundle: when forcing acceptance of incoming delta also accept snapshot
+ * bundle: emit full snapshot as is, without doing a redelta
+ * pathutil: slightly faster path audit in the common case
+ * merge: don't pay for pathconflicts if there are none
+ * merge: short-circuit the _checkfs loop upon getting ENOENT
+ * merge: disable the whole filesystem access loop if [_realfs] is false
+ * merge: cache the fs checks made during [_checkunknownfiles]
+ * rust: use `logging_timer` instead of `micro_timer`
+ * rust: run `cargo clippy`
+ * makefile: add `cargo clippy` to tests if cargo is available
+ * heptapod-ci: add `clippy` to the CI
+ * convert: use a priority queue for sorting commits, to make sorting faster
+ * delta-find: adjust the default candidate group chunk size
+ * delta-find: declare the "paths..*:pulled-delta-reuse-policy option
\ No newline at end of file