|
|
= 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
|