Up to [cvs.NetBSD.org] / pkgsrc / devel / py-mercurial
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-mercurial: update to 6.8.1. If you're using Mercurial with Python 3.12.5, you need this version. Mercurial 6.8.1 Python 3.12: fix an issue between threading and demandimport rhg: expand user and environment variable in paths to ignore in config and includes win32mbcs extension: fix an encoding issue Mercurial 6.8 As usual, a *lot* of patches don't make it to this list. New Features or performance improvements Phases have been reworked to improve their general performance revset: stop serializing node when using "%ln" phases: convert remote phase root to node while reading them phases: use revision number in new_heads phases: use revision number in analyze_remote_phases phases: stop using repo.set in remotephasessummary phases: move RemotePhasesSummary to revision number phases: use revision number in _pushdiscoveryphase phases: introduce a performant efficient way to access revision in a set phases: rework the logic of _pushdiscoveryphase to bound complexity The Rust working copy code is being used by more places now: matchers: support patternmatcher in rust dirstate: remove the python-side whitelist of allowed matchers stream-clone: disable gc for _entries_walk duration stream-clone: disable gc for the initial section for the v3 format postincoming: avoid computing branchhead if no report will be posted stream-clone: disable gc for the entry listing section for the v2 format perf: allow profiling of more than one run perf: run the gc before each run perf: start recording total time after warming perf: clear vfs audit_cache before each run outgoing: rework the handling of the missingroots case to be faster outgoing: add a simple fastpath when there is no common tags-cache: skip the filternode step if we are not going to use it tags-cache: directly operate on rev-num warming hgtagsfnodescache tags-cache: directly perform a monimal walk for hgtagsfnodescache warming New Experimental Features Introduce a new experimental branch cache "v3": branchcache: add more test for the logic around obsolescence and branch heads branchcache: skip entries that are topological heads in the on disk file branchcache: add a "pure topological head" fast path branchcache: allow to detect "pure topological case" for branchmap Bug Fixes rust: use cpython 0.7.2 crate to add support for Python 3.12 perf-stream-locked-section: actually use v1 generation when requested perf-stream-locked-section: fix the call to the v3 generator perf-stream-locked-section: advertise the right version key in the help stream: in v3, skip the "size" fast path if the entries have some unknown size stream-clone: stop getting the file size of all file in v3 streamclone: stop listing files for entries that have no volatile files perf-stream-consume: use the source repository config when applying bundle: do no check the changegroup version if no changegroup is included perf: create the temporary target next to the source in stream-consume bundlespec: fix the "streamv2" and "streamv3-exp" variant push: rework the computation of fallbackheads to be correct profiler: flush after writing the profiler output base-revsets: use an author that actually exercises a lot of changesets hgrc: search XDG_CONFIG_HOME on mac clonebundles: add missing newline to legacy response narrow: add a test for linkrev computation done during widen Multiple fixes to guard against mmap issues portability: fix build on Solaris-derived systemd Miscellaneous obsolete: quote the feature name
Update Mercurial to 6.7.4: inline-changelog: fix a critical bug in write_pending that delete data (3cf9e52f5e27) inline-changelog: fix pending transaction visibility when splitting (1721d983dd6d) 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
py-mercurial: update to 6.7.3. = Mercurial 6.7.3 = * 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`
py-mercurial: update to 6.7.2. Mercurial 6.7.2 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 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
py-mercurial: update to 6.7. = Mercurial 6.7 = 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
py-mercurial: update to 6.6.3. = Mercurial 6.6.3 = * tests: don't use "status" operand of dd in test-censor.t (issue6858) * tests: make sha256line.py available for all tests * tests: use sha256line.py instead of /dev/random in test-censor.t (issue6858) * tests: fix nondeterministic test failure in test-contrib-perf.t * rust-changelog: don't panic on empty file lists * grep: restore usage of --include/--exclude options
py-mercurial: update to 6.6.2. Mercurial 6.6.2 histedit: remove superfluous echo() and endwin() calls (issue6859) persistent-nodemap: avoid writing nodemap for empty revlog persistent-nodemap: respect the mmap setting when refreshing data bundle: do not detect --base argument that match nothing as lack of argument narrow: prevent removal of ACL-defined excludes pycompat: fix bytestr(bytes) in Python 3.11
py-mercurial: update to 6.6.1. = Mercurial 6.6.1 = The first two patches fix aborted transactions that could happen since 6.6. * revlog: avoid exposing delayed index entry too widely in non-inline revlog * revlog: avoid wrongly updating the data file location on "divert" * tests: do not fail tests in a state with uncommitted .py file removal * perf-tags: fix the --clear-fnode-cache-rev code * perf-tags: fix clear_cache_fnodes to actually clear that cache * censor: fix things around inlining * Various Python 3 cleanups * Various Windows test suite fixes
py-mercurial: update to 6.6. As usual, a *lot* of patches don't make it to this list. New Features rust-config: add support for default config items rhg: add config defaults to configitems.toml rhg: support "status FILE" rhg: support rhg files [FILE] commands: add admin namespace admin-command: add verify command debug-delta-chain: add options to control what we compute Added some caching for uncompressed revlog chunks that speed up some operations New Experimental Features Bug Fixes Improve OpenVMS support byteify-strings: passe sysstr to attr function and wrapper journal: track bookmark deletion transaction: actually delete file created during the transaction on rollback pull: avoid referencing a variable before it is initialized rust-filepatterns: also normalize RelPath narrow: hoist a variable to a higher level to avoid use-before-init warning convert: stabilize subversion date sorter run-tests: detect HGWITHRUSTEXT value censor: accept censored revision during upgrade rust-matchers: fix quadratic complexity in FileMatcher unstable: do not consider internal phases when computing unstable Still a whole bunch of Python 2 -> 3 migration leftovers Backwards Compatibility Changes perf: display all timing by default infinitepush: drop the extension debug-delta-chain: print less data by default Internal API Changes The revlog interface has been significantly cleaned up. configitems: add documentation field configitems: declare items in a TOML file configitems: move blackbox's config items to the new configitems.toml path-suboption: deprecated specifying the attributes as bytes pycompat: deprecate using bytes check-code: drop the safehasattr rule safehasattr: drop usage in favor of hasattr rust: add UncheckedRevision type rust: implement the Graph trait for all revlogs rust: make Revision a newtype perf: change the way we approach revlog reading perf: ensure all readlog's reading is done within a reading context delta-chain: move the debugdeltachain command in revlogutils
py-mercurial: update to 6.5.3. Mercurial 6.5.3 "hgweb: pass strings in WSGI environment correctly from wsgicgi" "perf: introduce more cache invalidation option in perf::tags" "perf: add a --clear-fnode-cache-rev argument to perf::tags" "perf: add a --update-last flag to perf::tags" "blackbox: add a option to duplicate output to stderr too" "tags: avoid expensive access to repo.changelog in a loop" "revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV" "httppeer: fix static-http: scheme autodetection (issue6833)" "tests: backed out changeset 8037ddacad47" "stream-clone: fix a crash when a repo with an empty revlog is cloned" "censor: accept censored revision during upgrade" "revlog: avoid opening and closing the file for each cloned revision"
py-mercurial: Update to 6.5.2 pkgsrc changes: --------------- * Shift patch lines to suppress offset. upstream changes: ----------------- Mercurial 6.5.2 o hgweb: encode WSGI environment using the ISO-8859-1 codec o rhg: fix the bug where sparse config is interpreted as relglob instead of glob o gpg: fix an UnboundLocalError whenever using --force o transaction: fix repr() and make the default name bytes o setup: make the error "Unable to find a working hg binary" more informative o tests: avoid test environment affecting setup.py o run-tests: detect HGWITHRUSTEXT value
py-mercurial: update to 6.5.1. = Mercurial 6.5.1 = * A bunch of improvements to Python 3.12 compatibility * repoview: fix the filter created by `extrafilter` * Improve portability of the test suite * fncache: fix a bug that corrupts the fncache after transaction rollback * revlog: fix the naming scheme use by split temporary file * perf: fix perf::tags
py-mercurial: update to 6.5. New Features Improved Python 3.12 compatiblity configitems: enable changegroup3 by default (unless using infinitepush) extras: expose 'retained_extras' for extensions to extend stabletailgraph: implement stable-tail sort stabletailgraph: naive version of leap computation bundle: introduce a "v3" spec clone-bundles: add a basic first version of automatic bundle generation clone-bundles: garbage collect older bundle when generating new ones clone-bundles: only regenerate the clone bundle when cached ration is low clone-bundles: also control automation based on absolute number of revisions clone-bundles: add a configuration to control auto-generation on changes clone-bundles: introduce a command to refresh bundle clone-bundles: add a command to clear all bundles clone-bundles: add an option to generate bundles in the background clonebundles: add support for inline (streaming) clonebundles clonebundles: adds a auto-generate.serve-inline option match: add filepath: pattern to match an exact filepath relative to the root hgweb: add "children" into the JSON template for a changeset hgweb: add support to explicitly access hidden changesets pull: add --remote-hidden option and pass it through peer creation hidden: add support for --remote-hidden to HTTP peer hidden: support passing --hidden with serve --stdio hidden: add support to explicitly access hidden changesets with SSH peers perf: introduce a perf::stream-locked-section command perf: add a function to find a stream version generator perf: add support for stream-v3 during benchmark perf: add a perf::stream-generate command perf: add a perf::stream-consume cli: make debugnodemap capable of inspecting an arbitrary nodemap rust: configure MSRV in Clippy rhg: make rhg files work if ui.relative-files=true is specified rhg: support rhg files with ui.relative-paths=false rhg: support status --print0 tree-manifest: allow debugupgraderepo to run on tree manifest repo library: enable runpy invocation on mercurial package library: incorporate demandimport into runpy invocation exchange: allow passing no includes/excludes to pull() New Experimental Features stream-clone: add an experimental v3 version of the protocol stream-clone: support streamv3 on the cli [hg bundle] Bug Fixes mail: add a missing argument to properly override starttls bundle: include required phases when saving a bundle (issue6794) outgoing: fix common-heads computation from missingroots argument strip: do not include internal changeset in the strip backup bundle: abort if the user request bundling of internal changesets bundle: prevent implicit bundling of internal changeset encoding: avoid quadratic time complexity when json-encoding non-UTF8 strings sha1dc: Make sure SHA1DC_BIGENDIAN is set on Darwin/PowerPC zstd: hack include order to ensure that our zstd.h is found dirstate: better error messages when dirstate is corrupted stream-clone: avoid opening a revlog in case we do not need it treemanifest: make updatecaches update the nodemaps for all directories rust-hg-core: move from ouroboros to self_cell rust-dependencies: switch from users to whoami dirstate-v2: actually fix the dirstate-v2 upgrade race dirstate: avoid leaking disk space in hg debugrebuilddirstate clonebundles: add warning if auto-generate is enabled without formats win32mbcs: unbyteify some strings for py3 support rust-revlog: fix incorrect results with NULL_NODE prefixes rust-revlog: fix RevlogEntry.data() for NULL_REVISION Backwards Compatibility Changes infinitepush: aggressively deprecated infinite push narrow: indicated the default of 'Yes' when confirming auto-remove-includes Internal API Changes Store walk was reworked to fix small race conditions in stream-clone and greatly improve its API robustness and flexibility. Miscellaneous Typechecking support was improved in a lot of places Removed more useless compat code for now unsupported Python versions Sped up zstd usage in Rust contexts revlog: add an exception hint when processing LFS flags without the extension ui: keep the progress bar around when writing if stdout is not a tty transaction: use a ".bck" extension for all backup file
py-mercurial: update to 6.4.5. re2: fix reporting of availability in hg debuginstall ui: fix crash in hg paths when pulled-delta-reuse-policy is in use path: display proper user facing value for pulled-delta-reuse-policy
py-mercurial: update to 6.4.4. = Mercurial 6.4.4 = * clonebundles: filter out invalid schemes instead of failing on them * doc: format argument for date uses strftime format string (issue6818) * test: make test-contrib-perf.t more robust * revlog: fix a bug in revlog splitting * bundles: clarify streaming v2 bundle usage * delta-find: fix pulled-delta-reuse-policy=forced behavior * dirstate: fall back to v1 if reading v2 failed * revlog: avoid possible collision between directory and temporary index
py-mercurial: update to 6.4.3. Mercurial 6.4.3 chg: declare environ (issue6812) chg: set CHGHG before connecting to command server delta-find: never do anything fancy when general delta is off delta-find: add a simple safeguard to prevent bad non-general-delta debug-delta: add minimal documentation for devel.bundle-delta option fix: highlight the required configuration and behavior of the fixer tools rhg: don't print copy source when --no-status is passed rhg: correctly relativize copy source path repo-upgrade: write new requirement before upgrading the dirstate backup: fix issue when the backup end up in a different directory
py-mercurial: update to 6.4.2. Exceptional bugfix release due to a corruption bug that happens when using clonebundles on repositories with large files. revlog-split: make sure the self._indexfile attribute is reset (issue6811)
py-mercurial: update to 6.4.1. = Mercurial 6.4.1 = * rhg: fix a bug in path encoding * rhg: don't crash on empty directory names in path_encode, just in case * commands: correct documentation of hg serve’s --ipv6 options * run-tests: remove obsolete coverage check and packaging import (issue6805) * chg: populate CHGHG if not set * match: sort patterns before compiling them into a regex * match: match explicit file using a set * rebase: do not cleanup the working copy when --dry-run is used (issue6802) * sslutil: set context security level for legacy tls testing (issue6760)
py-mercurial: update to 6.4. 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 rust: fix building on macOS (issue6801) run-tests: fix a crash when using the coverage options undo-files: also remove the undo.backupfiles undo-files: cleanup backup when cleaning undos undo-files: clean existing files up before writing new one undo-files: cleanup legacy files when applicable dirstate-v2: fix an incorrect handling of readdir errors rust: update zstd dependency rust: upgrade rayon dependency dirstate: fix the bug in [status] dealing with committed&ignored directories dirstate: fix a potential traceback when in copy and rename histedit: fix diff colors cext: fix for PyLong refactoring in CPython 3.12 py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences statprof: with Python 3.12, lineno is (more) often None transaction: properly clean up backup file outside of .hg/store/ transaction: raise on backup restoration error revlog: improve the robustness of the splitting process debugdeltachain: stop summing the same chain over and over url: don't ignore timeout for https connections py3: fix for Python 3.12 emitting SyntaxWarning on invalid escape sequences tests: accept a test output change in [tests/test-serve.t] rust: fix thread cap (for real this time) dirstate: try refreshing the changelog when parent are unknown hooks: invalidate the repo after the hooks 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
py-mercurial: update to 6.3.3. Changes: not found, but many test failures fixed.
py-mercurial: update to 6.3.2. Mercurial 6.3.2 [ecfc84b956a8] tests: expect the message from 1baf0fffd82f in test-hghave.t (issue6762) [5c095119bff4] tests: add the missing space to test-hghave.t (issue6762) [2c346c1c75ec] tests: use an all too familiar executable in test-run-tests.t (issue6661) [13c0e3b4fd35] tests: use test -f instead of ls to see if a file is present (issue6662) [8ced4ca30ea1] bisect: correct message about aborting an in-progress bisect (issue6527) filemerge: fix crash when using filesets in [partial-merge-tools] help: fix a py3 error interpolating Set into b'%s' match: make the FLAG_RE pattern a raw string python-compat: adapt to Python 3.11 BC breakage with random.sample rust-status: fix thread count ceiling hg: show the correct message when cloning an LFS repo with extension disabled extensions: process disabled external paths when hgext package is in-memory emitrevision: consider ancestors revision to emit as available base make: add a target for building pyoxidizer tests on macOS run-tests: support --pyoxidized on macOS packaging: add dependencies to the PyOxidizer build on macOS Miscellaneous test fixes
py-mercurial: update to 6.3.1. Mercurial 6.3.1 memory-usage: fix hg log --follow --rev R F space complexity (dcb2581e33be) Improve portability and robustness of test harness hg-core: relax dependencies pinning matcher: fix issues regex flag contained in pattern (issue6759) matcher: do not prepend '.*' to pattern using ^ after flags packaging: refresh dependency hashes (issue6750) cffi: fix a bytes vs str issue on macOS when listing directories commit: properly consider file include and exclude options when closing branch dirstate-v2: do not put the dirstate data file in a transaction Mercurial 6.3 New Features testlib: add --raw-sha1 option to f rhg: add config.rhg helptext config: add alias from hg help rhg to hg help rust rhg: add a config option to fall back immediately bundle: introduce a --exact option perf-bundle: add a new command to benchmark bundle creation time perf-bundle: accept --rev arguments perf-bundle: accept --type argument perf-unbundle: add a perf command to time the unbundle operation perf: introduce a benchmark for delta-find contrib: add support for rhel9 phase-shelve: Implement a 'shelve.store' experimental config debug-delta-find: introduce a quiet mode sort-revset: introduce a random variant phase: introduce a dedicated requirement for the archived phase rebase: add boolean config item rebase.store-source rhg: make [rhg status -v] work when it needs no extra output rhg: support "!" syntax for disabling extensions rhg: add debugrhgsparse command to help figure out bugs in rhg rhg: add sparse support rhg-status: add support for narrow clones templates: add filter to reverse list contrib: add pull_logger extension revset: handle wdir() in roots() revset: handle wdir() in sort(..., -topo) rhg: support tweakdefaults rhg: parallellize computation of [unsure_is_modified] Bug Fixes shelve: demonstrate that the state is different across platforms (issue6735) shelve: in test for trailing whitespace, strip commit (issue6735) shelve: remove strip and rely on prior state (issue6735) tests: fix http-bad-server expected errors for python 3.10 (issue6643) status: let --no-copies override ui.statuscopies releasenotes: use re.MULTILINE mode when checking admonitions rhg: fallback to slow path on invalid patterns in hgignore Fix a bunch of leftover str/bytes issues from Python 3 migration keepalive: ensure close_all() actually closes all cached connections lfs: fix blob corruption when tranferring with workers on posix lfs: avoid closing connections when the worker doesn't fork dirstate-v2: update constant that wasn't kept in sync dirstate-v2: fix edge case where entries aren't sorted upgrade: no longer keep all revlogs in memory at any point rust-status: save new dircache even if just invalidated dirstate-v2: hash the source of the ignore patterns as well rhg: fallback when encountering ellipsis revisions shelve: handle empty parents and nodestoremove in shelvedstate (issue6748) profile: prevent a crash when line number is unknown tags-fnode-cache: do not repeatedly open the filelog in a loop tags-fnode-cache: skip building a changectx in getfnode rust: create wrapper struct to reduce regex contention issues Backwards Compatibility Changes chg worker processes will now correctly load per-repository configuration phase: rename the requirement for internal-phase from internal-phase to use-internal-phase (see 74fb1842f8b962cf03d7cd5b841dbcf2ae065587)
py-mercurial: update to 6.2.3. Mercurial 6.2.3 tests: improve portability, debugging and flakiness packaging: update dulwich to drop the certifi dependency on Windows rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade
py-mercurial: update to 6.2.2. Mercurial 6.2.2 fsmonitor: restore functionality by moving to new dirstate APIs dirstate-v2: fix data file transaction handling (issue6730) rust: fix behavior when matching files with multiple includes rust: widen range of compatible crates to help with packaging rust-status: ignored directories are now correctly only listed if opted into automation: improve Windows packaging tooling contrib: update Mercurial install in bootstrap environment Remove flakiness in some tests Improve portability of certain tar uses in tests
py-mercurial: update to 6.2.1. Fix SSL support in Python 3.6 git: make sure to fsdecode bookmark names everywhere (issue6723) git: add a missing reset_copy keyword argument to dirstate.set_tracked() git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472) packaging: update keyring on Windows to avoid spurious stacktraces packaging: bump dulwich to 0.20.45 Fix typos in documentation for debugdiscovery Miscellaneous improvements of debugdiscovery
py-mercurial: update to 6.2. This is the first release to support Python 3.6+ only New Features Introduce a way to auto-upgrade a repo for certain requirements (see hg help config.format) filemerge: add support for partial conflict resolution by external tool contrib: add a partial-merge tool for sorted lists (such as Python imports) revlog: reorder p1 and p2 when p1 is null and p2 is not while respecting issue6528 rhg: add support for ignoring all extensions completion: install completers to conventional locations revert: ask user to confirm before tracking new file when interactive Rust implementation now uses the new dirstate API sslutil: be less strict about which ciphers are allowed when using --insecure sslutil: support TLSV1_ALERT_PROTOCOL_VERSION reason code absorb: make --edit-lines imply --apply-changes diff: add help text to highlight the ability to do merge diffs censor: make rhg fall back to python when encountering a censored node clone: use better names for temp files debuglock: make the command more useful in non-interactive mode debugdeltachain: distinct between snapshot and other diffs debugindex: rename to debugindex debug-revlog-index Make debug-revlog-index give out more information sparse: use the rust code even when sparse is present Bug Fixes Python 3 bugfixes Windows bugfixes templates: make firstline filter not keep '\v', '\f' and similar rhg: sort unsupported extensions in error message Improve performance of all functions that extract the first line of a text crecord: avoid duplicating lines when reverting noeol->eol change Some config.path options are now discoverable via config mail: don't complain about a multi-word email.method bundlespec: do not overwrite bundlespec value with the config one bundlespec: do not check for - in the params portion of the bundlespec bundlespec: handle the presence of obsmarker part sparse: start moving away from the global variable for detection of usage rust-changelog: don't skip empty lines when iterating over changeset lines narrow: support debugupgraderepo bundle: quick fix to ludicrous performance penalty followlines: don't put Unicode directly into the .js file (issue6559) manifest: improve error message in case for tree manifest revlog: use %d to format int instead of %lu (issue6565) revlog: use appropriate format char for int ("i" instead of I") worker: stop relying on garbage collection to release memoryview worker: implement _blockingreader.readinto() (issue6444) worker: avoid potential partial write of pickled data Backwards Compatibility Changes Removed Python 2 support: this includes a lot of cleanup in our codebase, automation, testing, etc. debugindex: rename to debugindex debug-revlog-index Miscellaneous Fix typos and add missing items from documentation dirstate-tree: optimize HashMap lookups with raw_entry_mut Rust dependencies have been upgraded revlog: rank computation is done by Rust when available Improve discovery test tooling Audit the number of queries done in discovery Improved .hgignore of the mercurial-devel repository itself Improve test coverage of dirstate-v2 rust-requirements: allow loading repos with bookmarksinstore requirement Various Rust refactorings to help with revlog management Improve debugability of Rust structs Improve unit testing of the Rust dirstatemap Improve robustness of the Rust dirstatemap to corruption Improve changelog-v2 upgrade system
py-mercurial: update to 6.1.4. Changes not found
py-mercurial: update to 6.1.3. Mercurial 6.1.3 security: narrow_widen_acl: enforce narrowacl in narrow_widen (SEC) 6b10151b9621 normal notes: censor: fix [hg update] away from a revision with censored files amend: stop losing copies when amending rhg: strengthen dirstate v2 writing in broken filesystems work around some broken DLL imports in Windows worker: adapt _blockingreader to work around a python3.8.[0-1] bug (issue6444) rhg: correctly handle the case where diffs are encoded relative to nullrev fix bugs and race-conditions in the Mercurial test runner chg: ignore already closed fds when cleaning up
py-mercurial: update to 6.1.2. = Mercurial 6.1.2 = * Improve Windows test suite * Fix `debuglock` not ignoring a missing lockfile when forcing a lock * Improve help of `ui.large-file-limit` * Set the large-file-limit to 10MB (from 10MiB) for clarity * While rewriting desc hashes, ignore ambiguous prefix "hashes" * Fix a crash in partial amend with copies * Fix a py3 compatiblity bug * Fix incorrect metadata causing dirstate-v2 data loss in edge case * Fix cleanup of old dirstate-v2 data files when using `rhg` * Make reference to `.hg/last_message.txt` relative in commit * Fix an infinite hang when `rhg` is used in the background * Fix Python DLL loading bug in Windows * Add `--docket` flag to `debugstate` to check out dirstate-v2 metadata * Remove `debugdirstateignorepatternhash` in favor of `debugstate --docket` * Fix incorrect metadata causing systematic complete dirstate-v2 rewrite
py-mercurial: update to 6.1.1. = Mercurial 6.1.1 = * Fix Rust compilation on `aarcch64` * Fix Rust compilation on architectures where `char` is unsigned * When the merge tool uses `$output`, don't leave markers in `$local` * Improve test suite support on big-endian platforms * Cap the number of concurrent threads to 16 in Rust `hg status` to prevent huge speed regression at higher thread counts * Fix `amend` with copies in extras * Abort if commit we're trying to `unamend` was not created by `hg [un]amend` * Fix file name in the pullbundle help text * Fix an issue with data not being correctly reset in the C implementation of dirstate-v2 * Fix issue6673 where some tags were missing from cache after a merge * Fix stream-cloning a repo with empty requirements * Fix a false warning about content-divergence creation * Fix silly blackbox entries when hg is interrupted * Fix unsoundness (no known exploits) in Rust extensions (see cfd270d83169 and dd6b67d5c256) * Fix Rust dirstate counters not being updated correctly leading to some potential bugs (none known) * Stop relying on a compiler implementation detail in Rust HgPath
py-mercurial: update to 6.1. New Features Added a way of specifying required extensions that prevent Mercurial from starting if they are not found. See hg help config.extensions. Merge conflict markers have been made clearer (see backwards compatibility below) Improve detailed error codes Added a hint about mangled whitespace on bad patch Explain which order the commits are presented in chistedit Introduce a dirstate-tracked-hint feature to help automation keep track of changes to tracked files. See hg help config.use-dirstate-tracked-hint. Shared repositories can be upgraded if the upgrade is specific to the share. For now, this only applies to dirstate-v2 and dirstate-tracked-hint. When using the narrow extension, non-conflicting changes to files outside of the narrow specification can now be merged. When cloning a repository using stream-clone, the client can now control the repository format variants to use as long as the stream content does not restrict that variant. Default Format Change These changes affect newly created repositories (or new clones) done with Mercurial 6.1. The share-safe format variant is now enabled by default. It makes configuration and requirements more consistent across repository and their shares. This introduces a behavior change as shares from a repository using the new format will also use their main repository's configuration. See hg help config.format.use-share-safe for details about the feature and the available options for auto-upgrading existing shares. New Experimental Features The pure Rust version of Mercurial called rhg added support for most common invocations of hg status. See hg help rust.rhg for details on how to try it out. rhg supports narrow clones and sparse checkouts. Bug Fixes Obsolete revisions are skipped while computing heads. In conjunction with the evolve extension >= 10.5.0, this leads to massive exchange (push/pull) speedups in repositories with a lot of heads and/or obsolete revisions. Stream-clones now properly advertise all requirements needed. This can result in the stream-clone feature being disabled for some clients using < 6.0.2. A small bugfix patch for these older client is available if necessary. The --no-check and --no-merge flags now properly overwrite the behavior from commands.update.check rhg's fallback detection is more robust in general in the presence of more advanced configs rhg's blackbox now supports milliseconds by default and uses the same ISO 8601 format as the Python implementation Fix rhg crash on non-generaldelta revlogs The lfs, largefiles and sparse extensions now correctly take the appropriate lock before writing requirements The notify extension does not produce errors anymore if a revision is not found Remove unnecessary and overly strict check for divergence in hg fix Windows compatibility improvements Miscellaneous Python 3 and typing improvements Many other small or internal fixes Backwards Compatibility Changes The use of share-safe, means shares (of new repositories) will also use their main repository's configuration see the Default Format Change section for details. The fix to stream-clone requirements advertising means some requirements previously (wronly) omitted are now sent. This can confuse client using a Mercurial version < 6.0.2. The client would consider these requirements unsupported even if it actually know them. If you encounter this, either upgrade your client or apply the necessary patch. The labels passed to merge tools have changed slightly. Merge tools can get labels passed to them if you include $labellocal, $labelbase, and/or $labelother in the merge-tool.<tool name>.args configuration. These labels used to have some space-padding, and truncation to fit within 72 columns. Both the padding and the truncation has been removed. Some of the text in labels passed to merge tools has changed. For example, in conflicts while running hg histedit, the labels used to be "local", "base", and "histedit". They are now "already edited", "parent of current change", and "current change", respectively. The computation of namedbranch heads now ignores obsolete revisions. User of the Changeset Evolution feature may see a change in location and numbers of heads of each named branches (and topic). The remotefilelog extension now requires an appropriate excludepattern for subrepositories. debugsparse's interface has been reworked to be more flexible. Since it's a debug command it is not actually a breaking change, but it is worth noting here. Temporary files for merges are now all inside a hgmerge directory instead of at the root of TMPDIR. The corresponding experimental mergetempdirprefix config option has been removed. Internal API Changes The dirstate API received minor modifications. Miscellaneous Removed exchange-v2. It was a prototype that had never been in a working state and had been left untouched since 2017.
py-mercurial: update to 6.0.3. Changes not found.
py-mercurial: update to 6.0.2. Mercurial 6.0.2 * Fix hg incoming and hg outgoing with remote subrepos on Windows * Fix Rust build on MacOS * Fix a (15 year old?) bug where some data loss could happen in a very tight race window * Remove support for running hg unamend on merge changesets at it was never actually implemented * Fix stream-clone requirements filtering which caused some stream-clones to be unusable from an older version of Mercurial * Rename dirstate-v2 configuration name from exp-rc-dirstate-v2 to use-dirstate-v2. This was overlooked in 6.0, the old name will be kept as an alias for compatibility. * Fix a bug where the branchmap could point to uncommitted data
py-mercurial: update to 6.0.1. Changes not found.
py-mercurial: update to 6.0. == New Features == * `debugrebuildfncache` now has an option to rebuild only the index files * a new `bookmarks.mode` path option have been introduced to control the bookmark update strategy during exchange with a peer. See `hg help paths` for details. * a new `bookmarks.mirror` option has been introduced. See `hg help bookmarks` for details. * more commands support detailed exit codes when config `ui.detailed-exit-codes` is enabled == Default Format Change == == New Experimental Features == * '''Major feature''': version 2 of the dirstate is available (the first version is as old as Mercurial itself). It allows for much faster working copy inspection (status, diff, commit, update, etc.) and richer information (symlink and exec info on Windows, etc.). The format has been frozen with room for some future evolution and the current implementations (Python, Python + C, Python + Rust or pure Rust) should be compatible with any future change or optimization that the format allows. You can get more information [[https://www.mercurial-scm.org/repo/hg/file/tip/mercurial/helptext/internals/dirstate-v2.txt | in the internal documentation]] * Added a new `web.full-garbage-collection-rate` to control performance. See de2e04fe4897a554b9ef433167f11ea4feb2e09c for more information * Added a new `histedit.later-commits-first` option to affect the ordering of commits in `chistedit` to match the order in `hg log -G`. It will affect the text-based version before graduating from experimental. == Bug Fixes == * `hg fix --working-dir` now correctly works when in an uncommitted merge state * Unintentional duplicated calls to `hg fix`'s internals were removed, making it potentially much faster * `rhg cat` can be called without a revision * `rhg cat` can be called with the `.` revision * `rhg cat` is more robust than before with regards to edge cases. Some still remain like a tag or bookmark that is ambiguous with a nodeid prefix, only nodeids (prefixed or not) are supported as of now. * `rhg cat` is even faster * `rhg` (Rust fast-path for `hg`) now supports the full config list syntax * `rhg` now parses some corner-cases for revsets correctly * Fixed an `fsmonitor` on Python 3 during exception handling * Lots of Windows fixes * Lots of miscellaneous other fixes * Removed a CPython-specific compatibility hack to improve support for alternative Python implementations
py-mercurial: update to 5.9.3. Changes not found.
py-mercurial: update to 5.9.2. Changes not found. Fix four test failures while here.
py-mercurial: update to 5.9.1. Changes not found.
py-mercurial: update to 5.9. == New Features == * `hg config` now has a `--source` option to show where each configuration value comes from. == Internal API Changes == The Dirstate API have been updated as the previous function leaked some internal details and did not distinct between two important cases: "We are changing parent and need to adjust the dirstate" and "some command is changing which file is tracked". To clarify the situation: * the following functions have been deprecated, - dirstate.add, - dirstate.normal, - dirstate.normallookup, - dirstate.merge, - dirstate.otherparent, - dirstate.remove, - dirstate.drop, * these new functions are added for the "adjusting parents" use-case: - dirstate.update_file, - dirstate.update_file_p1, * these new function are added for the "adjusting wc file" use-case": - dirstate.set_tracked, - dirstate.set_untracked, - dirstate.set_clean, - dirstate.set_possibly_dirty, See inline documentation of the new functions for details.
py-mercurial: update to 5.8.1. Changes not found.
py-mercurial: update to 5.8. == New Features == * `hg purge` is now a core command using `--confirm` by default. * The `rev-branch-cache` is now updated incrementally whenever changesets are added. * The new options `experimental.bundlecompthreads` and `experimental.bundlecompthreads.<engine>` can be used to instruct the compression engines for bundle operations to use multiple threads for compression. The default is single threaded operation. Currently only supported for zstd. == Default Format Change == These changes affects newly created repositories (or new clone) done with Mercurial 5.8. * The `ZSTD` compression will now be used by default for new repositories when available. This compression format was introduced in Mercurial 5.0, released in May 2019. See `hg help config.format.revlog-compression` for details. * Mercurial installation built with the Rust parts will now use the "persistent nodemap" feature by default. This feature was introduced in Mercurial 5.4 (May 2020). However Mercurial installation built without the fast Rust implementation will refuse to interact with them by default. This restriction can be lifted through configuration. See `hg help config.format.use-persistent-nodemap` for details == New Experimental Features == * There's a new `diff.merge` config option to show the changes relative to an automerge for merge changesets. This makes it easier to detect and review manual changes performed in merge changesets. It is supported by `hg diff --change`, `hg log -p` `hg incoming -p`, and `hg outgoing -p` so far. == Bug Fixes == * gracefully recover from inconsistent persistent-nodemap data from disk. == Backwards Compatibility Changes == * In normal repositories, the first parent of a changeset is not null, unless both parents are null (like the first changeset). Some legacy repositories violate this condition. The revlog code will now silentely swap the parents if this condition is tested. This can change the output of `hg log` when explicitly asking for first or second parent. The changesets "nodeid" are not affected.
py-mercurial: update to 5.7.1. Changes not found.
py-mercurial: update to 5.7 == New Features == * There is a new config section for templates used by hg commands. It is called `[command-templates]`. Some existing config options have been deprecated in favor of config options in the new section. These are: `ui.logtemplate` to `command-templates.log`, `ui.graphnodetemplate` to `command-templates.graphnode`, `ui.mergemarkertemplate` to `command-templates.mergemarker`, `ui.pre-merge-tool-output-template` to `command-templates.pre-merge-tool-output`. * There is a new set of config options for the template used for the one-line commit summary displayed by various commands, such as `hg rebase`. The main one is `command-templates.oneline-summary`. That can be overridden per command with `command-templates.oneline-summary.<command>`, where `<command>` can be e.g. `rebase`. As part of this effort, the default format from `hg rebase` was reorganized a bit. * `hg strip`, from the strip extension, is now a core command, `hg debugstrip`. The extension remains for compatibility. * `hg diff` and `hg extdiff` now support `--from <rev>` and `--to <rev>` arguments as clearer alternatives to `-r <revs>`. `-r <revs>` has been deprecated. * The memory footprint per changeset during pull/unbundle operations has been further reduced. * There is a new internal merge tool called `internal:mergediff` (can be set as the value for the `merge` config in the `[ui]` section). It resolves merges the same was as `internal:merge` and `internal:merge3`, but it shows conflicts differently. Instead of showing 2 or 3 snapshots of the conflicting pieces of code, it shows one snapshot and a diff. This may be useful when at least one side of the conflict is similar to the base. The new marker style is also supported by "premerge" as `merge-tools.<tool>.premerge=keep-mergediff`. * External hooks are now called with `HGPLAIN=1` preset. This has the side effect of ignoring aliases, templates, revsetaliases, and a few other config options in any `hg` command spawned by the hook. The previous behavior can be restored by setting HGPLAINEXCEPT appropriately in the parent process. See `hg help environment` for the list of items, and how to set it. * The `branchmap` cache is updated more intelligently and can be significantly faster for repositories with many branches and changesets. == New Experimental Features == * `experimental.single-head-per-branch:public-changes-only` can be used restrict the single head check to public revision. This is useful for overlay repository that have both a publishing and non-publishing view of the same storage. == Backwards Compatibility Changes == * `--force-lock` and `--force-wlock` options on `hg debuglock` command are renamed to `--force-free-lock` and `--force-free-wlock` respectively.
py-mercurial: update to 5.6.1. Changes not found.
py-mercurial: update to 5.6. Changes: not documented.
py-mercurial: update to 5.5.2. Make py-expat a full dependency, it is used (indirectly) by an installed file. Update rust cargo files list; however, two still don't fetch so keep rust option disabled. Mercurial 5.5.2 (2020-10-2) Regularly scheduled bug fix release. 1.1. commands log: fix crash and bad filematcher lookup by -fr'wdir()' PATH 1.2. unsorted hgdemandimport: bypass demandimport for _ast module (issue6407) hgdemandimport: exclude more sqlalchemy modules strip: with --keep, consider all revs "removed" from the wcp (issue6270)
py-mercurial: update to 5.5.1. Mercurial 5.5.1 (2020-09-1) Regularly scheduled bug fix release. 1.1. bug fixes keepalive: Do not append _rbuf if _raw_readinto exists (issue6356)
Update Mercurial to 5.5: == New Features == * clonebundles can be annotated with the expected memory requirements using the `REQUIREDRAM` option. This allows clients to skip bundles created with large zstd windows and fallback to larger, but less demanding bundles. * The `phabricator` extension now provides more functionality of the arcanist CLI like changing the status of a differential. * Phases processing is much faster, especially for repositories with old non-public changesets. == New Experimental Features == * The core of some hg operations have been (and are being) implemented in rust, for speed. `hg status` on a repository with 300k tracked files goes from 1.8s to 0.6s for instance. This has currently been tested only on linux, and does not build on windows. See rust/README.rst in the mercurial repository for instructions to opt into this. * An experimental config `rewrite.empty-successor` was introduced to control what happens when rewrite operations result in empty changesets. == Bug Fixes == * For the case when connected to a TTY, stdout was fixed to be line-buffered on Python 3 (where it was block-buffered before, causing the process to seem hanging) and Windows on Python 2 (where it was unbuffered before). * Subversion sources of the convert extension were fixed to work on Python 3. * Subversion sources of the convert extension now interpret the encoding of URLs like Subversion. Previously, there were situations where the convert extension recognized a repository as present but Subversion did not, and vice versa. * The empty changeset check of in-memory rebases was fixed to match that of normal rebases (and that of the commit command). * The push command now checks the correct set of outgoing changesets for obsolete and unstable changesets. Previously, it could happen that the check prevented pushing changesets which were already on the server. == Backwards Compatibility Changes == * Mercurial now requires at least Python 2.7.9 or a Python version that backported modern SSL/TLS features (as defined in PEP 466), and that Python was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2 (likely this requires the OpenSSL version to be at least 1.0.1). * The `hg perfwrite` command from contrib/perf.py was made more flexible and changed its default behavior. To get the previous behavior, run `hg perfwrite --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`. * The absorb extension now preserves changesets with no file changes that can be created by the commit command (those which change the branch name compared to the parent and those closing a branch head).
py-mercurial: update to 5.4.1. Changes not found, but at least some of the pkgsrc patches are not needed any longer.
py-mercurial: update to 5.4. Add links to bug reports about test failures. I think these are the news: == New Features == * `hg purge`/`hg clean` can now delete ignored files instead of untracked files, with the new -i flag. * `hg pull` now has a `--confirm` flag to prompt before applying changes. Config option `pull.confirm` is also added for that. * `hg log` now defaults to using an '%' symbol for commits involved in unresolved merge conflicts. That includes unresolved conflicts caused by e.g. `hg update --merge` and `hg graft`. '@' still takes precedence, so what used to be marked '@' still is. * New `conflictlocal()` and `conflictother()` revsets return the commits that are being merged, when there are conflicts. Also works for conflicts caused by e.g. `hg graft`. * `hg copy --forget` can be used to unmark a file as copied. * The `format.revlog-compression` configuration entry now accept a list. The first available option will be used. for example setting:: [format] revlog-compression=zstd, zlib Will use `zstd` compression for new repositories is available, and will simply fall back to `zlib` if not. * `hg debugmergestate` output is now templated, which may be useful e.g. for IDEs that want to help the user resolve merge conflicts. == New Experimental Features == * `hg copy` now supports a `--at-rev` argument to mark files as copied in the specified commit. It only works with `--after` for now (i.e., it's only useful for marking files copied using non-hg `cp` as copied). * Use `hg copy --forget --at-rev REV` to unmark already committed copies. == Bug Fixes == * Fix server exception when concurrent pushes delete the same bookmark * Prevent pushes of divergent bookmarks (foo@remote) * The push error "remote repository changed while pushing - please try again" now only happens when a concurrent push changed related heads (instead of when a concurrent pushed any revision). == Backwards Compatibility Changes == * When `hg rebase` pauses for merge conflict resolution, the working copy will no longer have the rebased node as a second parent. You can use the new `conflictparents()` revset for finding the other parent during a conflict. * `hg rebase` now accepts repeated `--source` and `--base` arguments. For example, `hg rebase --source 'A + B'` is equivalent to `hg rebase --source A --source B`. This is a backwards-incompatible change because it will break overriding an alias `myrebase = rebase --source A` by `hg myrebase --source B` (it will now rebase `(A + B)::` instead of `B::`). * `hg recover` does not verify the validity of the whole repository anymore. You can pass `--verify` or call `hg verify` if necessary. * `hg debugmergestate` output format changed. Let us know if that is causing you problems and we'll roll it back. * Resolved merge conflicts are now cleared by `hg commit` even if the working copy has no changes. == Internal API Changes == * The deprecated `ui.progress()` has now been deleted. Please use `ui.makeprogress()` instead. * `hg.merge()` now takes a `ctx` instead of the previous `repo` and `node` arguments. * `hg.merge()` has lost its `abort` argument. Please call `hg.abortmerge()` directly instead. * `hg.merge()` has lost its `mergeforce` argument. It should have only ever been called with the same value as the `force` argument. * The `*others` argument of `cmdutil.check_incompatible_arguments()` changed from being varargs argument to being a single collection.
py-mercurial: update to 5.3.2. Changes not found.
py-mercurial: update to 5.3.1. Regular bug fix release.
py-mercurial: update to 5.3. == New Features == * Windows will process hgrc files in %PROGRAMDATA%\Mercurial\hgrc.d. == Bug Fixes == * The `indent()` template function was documented to not indent empty lines, but it still indented the first line even if it was empty. It no longer does that. == Internal API Changes == * Matcher instances no longer have a `explicitdir` property. Consider rewriting your code to use `repo.wvfs.isdir()` and/or `ctx.hasdir()` instead. Also, the `traversedir` property is now also called when only `explicitdir` used to be called. That may mean that you can simply remove the use of `explicitdir` if you were already using `traversedir`. * The `revlog.nodemap` object have been merged into the `revlog.index` object. * `n in revlog.nodemap` becomes `revlog.index.has_node(n)`, * `revlog.nodemap[n]` becomes `revlog.index.rev(n)`, * `revlog.nodemap.get(n)` becomes `revlog.index.get_rev(n)`. * `copies.duplicatecopies()` was renamed to `copies.graftcopies()`. Its arguments changed from revision numbers to context objects. It also lost its `repo` and `skip` arguments (they should no longer be needed).
py-mercurial: update to 5.2.2. Changes not documented.
mercurial: remove outdated comments
py-mercurial: update to 5.2.1. Enable python-3.x support in pkgsrc. Changes in 5.2.1: Changes not documented.
py-mercurial: update to 5.2. Feature release. Backwards Compatibility Changes =============================== * The infinitepush extension is believed to be unused, and will be deleted at the end of 2020 unless users contact mercurial-devel@mercurial-scm.org. * 'hg grep' now searches working copy file contents by default. We recognize this is a significant change from past behavior, but surveys of large bodies of users indicated nobody used (and almost nobody understood) the previous no-flags behavior of 'hg grep'. The new behavior aligns with the behavior most users expected (including hg's maintainers), which also happens to be the behavior of 'git grep'. Given that the old behavior was confusing to the point of being unusable, we were comfortable changing this behavior. API Changes =========== * 'mercurial.hg.update*' and 'mercurial.merge.update' now expect a value from a set of NAMED_CONSTANTS ('merge.UPDATECHECK_*' constants) rather than a collection of magic strings. As of now, the values are the same, but code should be prepared for these values to change in the future. * 'mercurial.hg.updatetotally' is now more thorough about checking its 'updatecheck' keyword argument. Previously invalid values would have used the configured default updatecheck method, but now will raise ValueError. * 'mercurial.bookmarks.bmstore' no longer has a convenience method for looking up changectx instances from a bookmark name. Use 'repo[repo.bookmarks[name]]' intead of 'repo.bookmarks.changectx(name)'. 1.1. commands amend: add option to update to the current user amend: enable support for closing the branch amend: enable support for using the secret phase bookmarks: actual fix for race condition deleting bookmark bookmarks: remove changectx() method from bmstore (API) branchmap: explicitly warm+write all subsets of the branchmap caches import: add debug messages when parsing data from patch header import: read X-Mercurial-Node email header to determine nodeid log: populate keywords if specified in custom -Tjson(...) or -Tcbor(...) merge: replace magic strings with NAMED_CONSTANTS (API) push: support config option to require revs be specified when running push 1.2. core exchange: abort on pushing bookmarks pointing to secret changesets (issue6159) exchange: avoid unnecessary conversion of bookmark nodes to hex (API) revlog: add a 'sidedata' parameters to addrevision revlog: add a way to control sidedata changes during revlog.clone revlog: add the appropriate flag is sidedata are passed to 'addrevision' revlog: assign rawtext earlier in '_revisiondata' revlog: avoid caching raw text too early in _revisiondata revlog: deprecate the use of 'revision(..., raw=True)' revlog: drop silly 'raw' parameter to 'rawdata' function revlog: explicitly set revlogv0 in vfs options revlog: introduce a 'sidedata' method revlog: move 'nullid' early return sooner in '_revisiondata' revlog: return sidedata map from '_revisiondata' revlog: stop calling 'basetext' 'rawtext' in _revisiondata revlog: stop using '_processflags' directly revlog: use the new sidedata map return in the sidedata method templatefuncs: account for user's diffopts in diff() (BC) ui: option to preserve the progress bar 1.3. extensions eol: don't fallback to use .hgeol from tip (BC) largefiles: use context manager for setting "lfstatus" on subrepos too rebase: track new nodes when --keep is set unshelve: abort on using --keep and --interactive together unshelve: add abort on using continue and interactive together unshelve: changes how date is set on interactive mode unshelve: create a matcher only if required on creating unshelve ctx unshelve: delete shelvedstate after a successful unshelve --continue unshelve: forget unknown files after a partial unshelve unshelve: handle stripping changesets on interactive mode unshelve: store information about interactive mode in shelvedstate unshelve: unify logic around creating an unshelve changeset 1.4. unsorted automation: add a command to submit to a Try server automation: support and use Debian Buster by default changelog: make copies related function return None or a valid value continue: added support for transplant copies: remove existing copy info from the changeset on amend (BC) demandimport: explicitly declare '_session' at the module level discovery: replace "heads" by "changesets" in a output note (BC) fastannotate: remove support for flock() locking fix: warn when a fixer doesn't have a configured command flagprocessors: deprecate _processflags flagprocessors: have the read transform function return side data (API) flagprocessors: writetransform function take side data as parameter (API) flagutil: move REVIDX_KNOWN_FLAGS source of truth in flagutil (API) flagutil: move addflagprocessor to the new module (API) flagutil: move insertflagprocessor to the new module (API) format: format commands.py, which recently regressed grep: enable all-files by default (BC) hg: have 'updatetotally' more thoroughly check updatecheck argument (API) infinitepush: mark extension as likely to be deleted narrow: don't hexify paths and double-hexify known nodes on wire (BC) narrow: drop server support for widening using the getbundle command (BC) notify: add option for deterministic message-id generation py3: prevent comparison with None in curses histedit (issue6196) python-zstandard: apply big-endian fix (issue6188) remotefilelog: reduce probability of race-condition in remotefilelog tests rust-dirstate-status: add call to rust-fast path for 'dirstate.status' rust-dirstate-status: rust-cpython bindings for 'dirstate.status' rust-dirstate-status: use fast-path even with fsmonitor and sparse extensions rust-discovery: optionally don't randomize at all, for tests sidedata: introduce a new requirement to protect the feature split: handle partial commit of renames when doing split or record (issue5723) sshserver: flush stream after command dispatch test: allow different result for zstd compression (issue6188) transplant: added support for --stop flag uncommit: add options to update to the current user or current date uncommit: add support to modify the commit message and date uncommit: drop the hyphen from --current-user and --current-date uncommit: enable support for adding a note uncommit: make -D/--date and -U/--user mutually exclusive 1.5. Behavior Changes copies: remove existing copy info from the changeset on amend (BC) discovery: replace "heads" by "changesets" in a output note (BC) eol: don't fallback to use .hgeol from tip (BC) grep: enable all-files by default (BC) narrow: don't hexify paths and double-hexify known nodes on wire (BC) narrow: drop server support for widening using the getbundle command (BC) templatefuncs: account for user's diffopts in diff() (BC) 1.6. Internal API Changes bookmarks: remove changectx() method from bmstore (API) exchange: avoid unnecessary conversion of bookmark nodes to hex (API) flagprocessors: have the read transform function return side data (API) flagprocessors: writetransform function take side data as parameter (API) flagutil: move REVIDX_KNOWN_FLAGS source of truth in flagutil (API) flagutil: move addflagprocessor to the new module (API) flagutil: move insertflagprocessor to the new module (API) hg: have 'updatetotally' more thoroughly check updatecheck argument (API) merge: replace magic strings with NAMED_CONSTANTS (API)
py-mercurial: update to 5.1.2. 1. Mercurial 5.1.2 (2019-10-02) Regularly scheduled bug fix release. 1.1. extensions • phabricator: don't abort if property writing fails during amending 1.2. tests • test: allow different result for zstd compression (issue6188) 2. Mercurial 5.1.1 (2019-09-05) Regularly scheduled bug fix release. 2.1. commands • bookmarks: actual fix for race condition deleting bookmark 2.2. core • exchange: abort on pushing bookmarks pointing to secret changesets (issue6159) • python-zstandard: apply big-endian fix (issue6188) • fncache: make debugrebuildfncache not fail on broken fncache 2.3. tests • various test runner fixes • fixed use of tr --delete for tr(1) portability
Changed PYTHON_VERSIONS_INCOMPATIBLE to PYTHON_VERSIONS_ACCEPTED; needed for future Python 3.8
py-mercurial: update to 5.1. This is an overview of the 5.1 release. 1. New Features New config commands.commit.post-status shows status after successful commit. hg root now has templating support, including support for showing where a repo share's source is. See hg help -v root for details. New --force-close-branch flag for hg commit to forcibly close branch from a non-head changeset. The curses-based interface for commands like hg commit -i now supports a range-select mechanism. Select the first line using space like before, navigate to the last line, and press X (capital x) to set all items in the range at once. Lowercase x has been added as a synonym for space to help reinforce the mechanism, and pressing enter/return continues to be a synonym for "toggle the current line and move down to the next item in this section." 2. New Experimental Features New config experimental.log.topo makes hg log -G use topological sorting. This is especially useful for aliases since it lets the alias accept an -r option while still using topological sorting with or without the -r (unlike if you use the `sort(..., topo)` revset). 3. Bug Fixes issue4292: "hg log and {files} {file_adds} {file_mods} {file_dels} in template show wrong files on merged revision". See details in "Backwards Compatibility Changes". 4. Backwards Compatibility Changes Removed (experimental) support for log graph lines mixing parent/grandparent styles. Setting e.g. experimental.graphstyle.parent = ! and experimental.graphstyle.grandparent = 3. would use ! for the first three lines of the graph and then .. This is no longer supported. If ui.origbackuppath had been (incorrectly) configured to point to a file, we will now replace that file by a directory and put backups in that directory. This is similar to how we would previously replace files *in* the configured directory by subdirectories. Template keyword {file_mods}, {file_adds}, and {file_dels} have changed behavior on merge commits. They used to be relative to the first parent, but they now consider both parents. {file_adds} shows files that exists in the commit but did not exist in either parent. {file_dels} shows files that do not exist in the commit but existed in either parent. {file_mods} show the remaining files from {files} that were not in the other two sets. 5. Internal API Changes Matchers are no longer iterable. Use match.files() instead. match.visitdir() and match.visitchildrenset() now expect the empty string instead of '.' to indicate the root directory. util.dirs() and util.finddirs() now include an entry for the root directory (empty string). shelve is no longer an extension now. it will be turned on by default. New API to manage unfinished operations: Earlier there were distinct APIs which dealt with unfinished states and separate lists maintaining them that are cmdutil.afterresolvestates, cmdutil.unfinishedstates and cmdutil.STATES. Now these have been unified to a single API which handles the various states and their utilities. This API has been added to state.py. Now instead of adding to these 3 lists independently a state for a new operation can be registered using addunfinished() in state module. cmdutil.checkunfinished() now includes detection for merge too. merge abort has been disallowed in case an operation of higher precedence is in progress to avoid cases of partial abort of operations. We used to automatically attempt to make extensions compatible with Python 3 (by translating their source code while loading it). We no longer do that.
py-mercurial: update to 5.0.2. As a bonus, changes for 5.0.1 which were not available at the time of the release. Mercurial 5.0.2 A regularly scheduled bugfix release. 1. commands Help fixes on hg mv and hg cp 2. unsorted debugrevlog: fix average size computation for empty data (issue6167) Fix an obscure data corruption bug with musl libc (and presumably others). See https://www.mercurial-scm.org/repo/hg-committed/rev/97ada9b8d51b the fix for more details. Mercurial 5.0.1 A regularly scheduled bugfix release. 1. commands bookmark: also make bookmark cache depends of the changelog commit: allow --interactive to work again when naming a directory (issue6131) 2. unsorted manifest: avoid corruption by dropping removed files with pure (issue5801) sslutil: fsencode path returned by certifi (issue6132)
py-mercurial: update to 5.0.1. Changes not documented.
mercurial: update to 5.0 Still building with python-2.7 only, but this version has beta support for python 3.x. Mercurial 5.0 release This is an overview of the 5.0 release. 1. New Features ui.relative-paths option for getting relative path output from most commands. This is enabled when ui.tweakdefaults is enabled. expectsize() revset errors out if revset has unexpected number of elements. config() template function for getting a config value. {negrev} template keyword shows the negative revision number. This is convenient because it is usually shorter than the positive number, but note that it is less stable. hg uncommit now has an --allow-dirty-working-copy option. hg shelve now has --keep option, which shelves but also leaves the working directory unchanged. hg diff will now include specified files in subrepos. hg recover now has a --no-verify option 1.1. Python 3 Support (Beta) Mercurial 5.0 has beta level support for running on Python 3.5, 3.6, and 3.7. The Mercurial distribution itself and all extensions bundled with it should work on these Python versions. To use Mercurial with Python 3, invoke setup.py with a Python 3 interpreter or set the PYTHON variable to a Python 3 interpreter when invoking the Makefile. e.g. python3.7 setup.py install or make install-home PYTHON=python3.7. 3rd party extensions will likely need to be ported to support running on Python 3 and attempts to run many existing extensions with a Python 3 powered Mercurial will result in extension loading failures. See the Python3 page for more. While the Mercurial test suite has a >99% pass rate when running with Python 3.5, 3.6, and 3.7, we anticipate that there are still many Python 3 bugs lingering in Mercurial. Please report Python 3 issues using the instructions at BugTracker. If you package Mercurial or distribute it to users, we do not recommend making Python 3 the default at this time. Python 3 is not yet very well tested on Windows and there are likely several more lingering issues on Windows compared to Linux, macOS, and other UNIX-like platforms. 1.2. Updated Windows Installers Windows installer packaging has been transitioned away from ad-hoc processes employed on individual contributors' personal machines to occurring in reproducible infrastructure driven by code in the Mercurial repository itself. This transition should enable Windows packaging and releasing to be more reliable and reproducible. As part of this transition, there are changes to the Windows installers. 1.2.1. Inno Setup .exe Installer Changes Python has been upgraded from 2.7.15 to 2.7.16 add_path.exe has been removed and the Inno installer now updates PATH via a Pascal script that is part of the installer The dulwich package has been upgraded from version 0.18.3 to 0.19.11 The keyring package has been upgraded to version 18.0.1 The pygments package has been upgraded to version 2.3.1 The urllib3 package is now included The MSVC Runtime DLLs (msvcm90.dll, msvcp90.dll, and msvcr90.dll) have been upgraded from version 9.0.21022.8 to 9.0.30729.9518 Various tcl/tk Python packages are now included (making the Python distribution more complete) The pywin32 package is no longer included (pywin32 has not been required by Mercurial for years) Known issue: the distutils package is broken (x86 only) Python .pyd and .dll extension modules and support libraries are now installed as standalone files instead of bundled in the library.zip file. This behavior is now consistent with 64-bit installers. 2. New Experimental Features 3. Other Notable Features 4. Other Improvements Improved color scheme for histedit's curses interface, making it more consistent with the curses hunk selector. 5. Bug Fixes Histedit's curse interface has improved support for non ascii characters. 6. Backwards Compatibility Changes color: change color of grep.rev label (BC) commit: if interactive, look elsewhere for whitespace settings (BC) diff: make sure we output stat even when --git is not passed (issue4037) (BC) uncommit: abort if an explicitly given file cannot be uncommitted (BC) The Windows Inno installers no longer ship the pywin32 package. This package was being bundled for historical reasons. Mercurial stopped using pywin32 several years ago and the disappearance of this package should not have any meaningful impact. The 32-bit Windows Inno installers no longer distribute w9xpopen.exe. This should only impact people running Mercurial on Windows 95, 98, or ME. The Windows MSI installers no longer include the Python sphinx package and its various dependencies. The Windows MSI installers no longer include the pywin32 Python package. The Windows MSI installers no longer include the enum and future Python packages. 7. Internal API Changes add: pass around uipathfn and use instead of m.rel() (API) addremove: pass around uipathfn and use instead of m.uipath() (API) branchmap: drop branchcache.setdefault() (API) branchmap: remove the dict interface from the branchcache class (API) forget: pass around uipathfn and use instead of m.rel() (API) largefiles: use uipathfn instead of match.{rel,uipath}() (API) match: delete unused abs() (API) match: delete unused rel() (API) match: delete unused root and cwd arguments from {always,never,exact}() (API) match: delete unused root and cwd arguments to constructors (API) match: delete unused uipath() and _uipathrelative (API) match: remove unused "exact" argument (API) memctx: rename constructor argument "copied" to "copysource" (API) patch: accept second matcher that applies only to copy sources (API) patch: let caller pass in root-filtering matcher (API) patch: pass in context objects into diffhunks() (API) patch: replace "prefix" and "relroot" arguments by "pathfn" (API) remove: pass around uipathfn and use instead of m.rel() (API) revset: leverage getintrange() helper in relation-subscript operation (API) scmutil: delete now-unused origpath() (API) scmutil: remove special handling of pats==("",) in matchandpats() (API) subrepo: adjust subrepo prefix before calling subrepo.add() (API) subrepo: adjust subrepo prefix before calling subrepo.addremove() (API) subrepo: adjust subrepo prefix before calling subrepo.archive() (API) subrepo: adjust subrepo prefix before calling subrepo.diff() (API) subrepo: adjust subrepo prefix before calling subrepo.forget() (API) subrepo: adjust subrepo prefix before calling subrepo.removefiles() (API) subrepo: avoid calculating subrepo prefix twice for cat() (API) templatekw: move getrenamedfn() to scmutil (API)