Mercurial > hg
view relnotes/6.7 @ 51725:bbe59cc5d2e1
rust-changelog: accessing the index
The `Index` object is currently the one providing all DAG related
algorithms, starting with simple ancestors iteration up to more
advanced ones (ranges, common ancestors…).
From pure Rust code, there was no way to access the changelog index for
a given `Repository`, probably because `rhg` does not use any such algorithm
yet.
author | Georges Racinet <georges.racinet@cloudcrane.io> |
---|---|
date | Mon, 22 Jul 2024 18:20:29 +0200 |
parents | a1a011d4b148 |
children |
line wrap: on
line source
= Mercurial 6.7.4 = Exceptional release following a critical regression causing possible data loss in certain conditions: * inline-changelog: fix a critical bug in write_pending that delete data (3cf9e52f5e27) * inline-changelog: fix pending transaction visibility when splitting (1721d983dd6d) Other changes in this release: * exchange: fix locking to actually be scoped * chistedit: change action for the correct item * rust-status: sort the failed matches when printing them * hooks: add a prewlock and a prelock hooks * bookmark: fix remote bookmark deletion when the push is raced = Mercurial 6.7.3 = /!\ This release contains a bug causing possible data loss, use 6.7.4 instead. * setup: display return code information about failed `hg` call * bundle-spec: properly identify changegroup-less bundle * bundle-spec: properly parse boolean configuration as boolean * matchers: fix the bug in rust PatternMatcher that made it cut off early * match: fix the "visitdir" method on "rootfilesin" matchers * match: fix the rust-side bug in visit_children_set for rootfilesin matchers * match: strengthen visit_children_set invariant, Recursive means "all files" * wireprotoserver: ensure that output stream gets flushed on exception * re2: make errors quiet * dirstate-v2: add check of parent/child nodes being related when writing * dirstate-v2: check that root nodes are at the root before writing * rust-cpython: don't swallow the dirstate error message * rust: blanket implementation of Graph for Graph references * Various fixes to `admin::verify` = Mercurial 6.7.2 = /!\ This release contains a bug causing possible data loss, use 6.7.4 instead. Exceptional release following a large performance regression when cloning. We are setting up automated benchmarks to reduce the likelihood of regressions of the sort from happening in the future. * phases: avoid a potentially costly dictionary interation in some case * phases: update the phase set as we go during retract boundary * bundle2: make the "hgtagsfnodes" part advisory = Mercurial 6.7.1 = /!\ This release contains a bug causing possible data loss, use 6.7.4 instead. Exceptional release following a crash found in delta code that can be triggered with complex repository shapes. * delta-search: fix crash caused by unbound variable * sshpeer: fix path when handling invalid url exception * subrepo: fix normalizing paths with scheme = Mercurial 6.7 = /!\ This release contains a bug causing possible data loss, use 6.7.4 instead. As usual, a *lot* of patches don't make it to this list. == New Features == * JSON templates can now use structured diffstat data * Support rhg status --rev --rev * The index for REVLOGv1 now has a Rust implementation * Improved `hg censor`'s output * censor: add a command flag to skip the head checks * censor: accept multiple revision in a single call * usage: add a `usage.repository-role` config * branchmap: use mmap for faster revbranchcache loading * crecord: enable search hotkeys (issue6834) * hg-core: separate timestamp and extra methods * annotate: limit output to range of lines * unbundle: faster computation of changed heads * Large improvements of some of the phases code (23950e39281f) * rust-filepatterns: export glob_to_re function == New Experimental Features == * Introduce `hg admin::chainsaw-update` for automation and *advanced* users == Bug Fixes == * templatekw: fix inconsistency of diffstat with diff.merge * The endless stream of Python 3 cleanups continues * Improved setup.py robustness * Improved test suite robustness * add: don't attempt to add back removed files unless explicitly listed * statprof: handle `lineno == None` in more cases * rust: fix cargo doc for hg-cpython * rust-python-index: don't panic on a corrupted index when calling from Python * debugindexstats: handle the lack of Rust support better * matchers: use correct method for finding index in vector * narrow: strip trailing `/` from manifest dir before matching it * cext: fix potential memory leaks of list items appended with PyList_Append * doc: document that labels must have a dot in them to have an effect * debugformat: fix formatting for compression level * obsutil: sort metadata before comparing in geteffectflag() * crecord: drop calls to `curses.endwin()` * rust-index: don't use mutable borrow for head-diff computation * rust-index: don't use mutable borrow to computed filtered heads == Backwards Compatibility Changes == Users of the Rust extensions and/or `rhg` should be aware that the new Rust index can result in a performance degradation for push/pull on repositories *not* using `persistent-nodemap` (see `hg help config.format.use-persistent-nodemap`). If this is something that matters to you, please reach out to us as this is not an insurmountable obstacle. This is a choice base on the assumption that there are few people in this situation and our time should be spent on more pressing matters. == Internal API Changes == * 62913:498017baa34b "cleanup: remove some code scheduled to be removed after 5.9" * 62914:88ef80210d67 "cleanup: drop `dirstate.is_changing_parent` deprecated since 6.5" * 62915:591845f89ada "cleanup: drop `path.pushloc` deprecated since 6.5" * 62916:d8f65fc72e7b "cleanup: drop deprecated config attribute on the revlog class" * 62917:5c9c41273367 "cleanup: turn `pathsuboption` deprecation warning into an error" * 62918:7b837fabc990 "cleanup: turn `wrappedfunction` deprecation warning into an error" * 62919:eda075d7b2ac "cleanup: turn `wrapfunction` deprecation warning into an error" * 62920:c845479fc64d "cleanup: drop the `bytes` compatibility for attribute related function" * 63464:dcaa2df1f688 "changelog: never inline changelog" * 63465:a93e52f0b6ff "changelog: disallow delayed write on inline changesets" * 63825:79cd29d598af "dirstate: make the `transaction` argument of `setbranch` mandatory" == Miscellaneous == * perf: support --template on perf::phases * perf: add a --as-push option to perf::unbundle * debug: add a debug::unbundle command that simulate the unbundle from a push * Lots of refactorings to prepare for performance improvements and remove tech debt