|
|
|
|
Changelog for mercurial-lang-6.8.1-lp156.366.1.noarch.rpm :
* Thu Sep 12 2024 Lukas Müller - Use existing python RPM macros instead of custom ones.- Remove mercurial-docutils-compat.diff.- Remove checks for obsolete SUSE version. * Tue Aug 06 2024 Andrei Dziahel - 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 * Tue Jul 09 2024 Andrei Dziahel - Mercurial 6.8 Regularly scheduled major release. + 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 * Mon Jun 17 2024 Lukas Müller - Build with Python 3.11 on Leap 15.6. * Wed Jun 12 2024 Andrei Dziahel - 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 * Tue May 07 2024 Andrei Dziahel - 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` * Thu Apr 04 2024 Martin Sirringhaus - Mercurial 6.7.2 Exceptional release following a large performance regression when cloning. * 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 * Thu Mar 21 2024 Andrei Dziahel - 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 * Mon Mar 18 2024 pgajdosAATTsuse.com- remove dependency on /usr/bin/python3 using %python3_fix_shebang macro, [bsc#1212476] * Fri Mar 15 2024 Andrei Dziahel - Mercurial 6.7 + 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 * Fri Feb 23 2024 pgajdosAATTsuse.com- Use %patch -P N instead of deprecated %patchN. * Tue Feb 13 2024 Andrei Dziahel - Update to 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 * Fri Jan 12 2024 Andrei Dziahel - Update to 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 * Fri Dec 22 2023 Dominique Leuenberger - Do not recommend mercurial-lang: the -lang package already contains supplements, that trigger on package plus selected locales. * Wed Dec 20 2023 Lukas Müller - Update to 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 * Thu Dec 07 2023 Andrei Dziahel - 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 * Tue Nov 21 2023 Andrei Dziahel - Mercurial 6.6 Regularly scheduled major release 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 + 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 * Tue Nov 07 2023 Andrei Dziahel - 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 * Wed Sep 06 2023 Andrei Dziahel - Mercurial 6.5.2 * hgweb: encode WSGI environment using the ISO-8859-1 codec * rhg: fix the bug where sparse config is interpreted as relglob instead of glob * gpg: fix an UnboundLocalError whenever using --force * transaction: fix __repr__() and make the default name bytes * setup: make the error \"Unable to find a working hg binary\" more informative * tests: avoid test environment affecting setup.py * run-tests: detect HGWITHRUSTEXT value * Thu Aug 10 2023 Andrei Dziahel - 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 * Fri Jul 28 2023 Andrei Dziahel - Mercurial 6.5 Regularly scheduled major release As usual, a lot of patches don\'t make it to this list since they\'re more internal. - 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 * Thu Jun 08 2023 Andreas Stieger - update to 6.4.4 * clonebundles: filter out invalid schemes instead of failing on them * doc: format argument for date uses strftime format string * 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 * Mon May 08 2023 Andrei Dziahel - update to 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 * Fri Apr 21 2023 Andreas Stieger - update to 6.4.2: * Fix a corruption bug that happens when using clonebundles on repositories with large files- includes changes from 6.4.1: * multiple bug fixes related to rgh path handling, and other fixes * Fri Mar 24 2023 Andrei Dziahel - Mercurial 6.4 Regularly scheduled (very late, though) major release + 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 * Thu Mar 02 2023 Andrei Dziahel - Update to Mercurial 6.3.3 * tests: filter out PEP 657 error locations in tracebacks (issue6780) * tests: optional PEP 657 error location in test-extension.t (issue6781) * tests: optional PEP 657 error location in test-lfs-serve-access.t (issue6782) * histedit: byteify the help for the multifold action * sparse: fix a py2 based usage of `map()` * convert: stop passing str to the dateutil API in darcs * convert: turn the last str regex into bytes in cvs.py (issue6789) * convert: change socket mode from b\'r+\' to \'rwb\' in cvs.py (issue6789) * convert: replace repr() by pycompat.byterepr() in cvsps.py (issue6789) * tests: os module is frozen in Python 3.11 (issue6786) * hgweb: unbyteify the 100-continue check * resourceutil: start using importlib.resources.files() when possible * revset: the `random` sort should not depend on sys.maxsize (issue6770) * tests: make sure pygments can detect python script without extension * convert: brz 3.3.0 moved NoSuchFile exception to breezy.transport * tests: pygments 2.14+ highlight whitespace in python code * hghave: make different has_pyoxidizer functions have different names * hghave: refactor checks for pygments versions using checkvers() * rust-narrow: fix loop that never loops * scmutil: make checknewlabel() allow \"_\" in otherwise numeric names (issue6737) * bundlerepo: enforce the requirements declared by the underlying repository * setup: make the version computation process more resistant * fix: add more information to the debug output * tag: disallow tagging the working directory * dirstate: handle missing backup file on restoration * dirstate-v2: complain early on docket name collision * rust: upgrade minimum `rayon` dependency * setup: support building from an ongoing merge * rust: add debug log about skipping dirstate update * rust-dirstate: trace append/no append to help debugging * dirstate-v2: don\'t mmap the data file when on NFS * run-tests: make it possible to nest conditionals * dirstate: add some debug output when writing the dirstate * testing: introduce util function to synchronize concurrent commands on files * dirstate: add a way to test races happening during status * dirstate: use more than a bool to control append behavior * dirstate-v2: add devel config option to control write behavior * rhg: fix race when a fixup file is deleted on disk * rhg: fix race when an ambiguous file is deleted on disk * dirstate: deal with read-race for pure python code * dirstate: deal with read-race for python code using rust object * dirstate: deal with read-race for pure rust code path (rhg) * dirstate: set identity whenever we read the dirstate\'s v2 docket * rust-dirstate-v2: don\'t write dirstate if data file has changed * rhg: remember the inode of .hg/dirstate * Wed Jan 04 2023 Andrei Dziahel - Update to 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 * Sun Nov 20 2022 Andreas Stieger - Update to Mercurial 6.3.1: * Fixes for Python 3.11 changes to regex flags * Mon Nov 14 2022 Andrei Dziahel - Update to Mercurial 6.3.0 + 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 when given a both a relative `--repository` path and an alternate working directory via `--cwd`. A side-effect of this change is that these workers will now return an error if hg cannot find the current working directory, even when a different directory is specified via `--cwd`. * phase: rename the requirement for internal-phase from `internal-phase` to `use-internal-phase` (see 74fb1842f8b962cf03d7cd5b841dbcf2ae065587) + Miscellaneous * sslutil: use proper attribute to select python 3.7+ * typing: suppress a few pyi-errors with more recent pytype * ci: bump pytype to 2022.03.29 * bundlespec: add documentation about existing option * subrepo: avoid opening console window for non-native subrepos on Windows * setup: unconditionally enable the `long-paths-support` option on Windows * setup: use the full executable manifest from `python.exe` * tests: work around libmagic bug in svn subrepo tests * packagelib: use python3 by default * Improve `hg bisect` performance * perf: properly process formatter option in perf::unbundle * compare-disco: miscellaneous display improvements * fsmonitor: better compatibility with newer Pythons * revlog: finer computation of \"issnapshot\" * rhg: don\'t fallback if `strip` or `rebase` are activated * perf: make perf::bundle compatible before 61ba04693d65 * perf: make perf::bundle compatible down to 5.2 * perf-unbundle: improve compatibility * run-tests: display the time it took to install Mercurial * mergetools: don\'t let meld open all changed files on startup * dirstate-v2: skip evaluation of hgignore regex on cached directories * Mon Oct 10 2022 Dirk Müller - update to 6.2.3: * mergetools: don\'t let meld open all changed files on startup * heptapod-ci: use shell script in pytype step * rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade * status: let `--no-copies` override `ui.statuscopies` * Mon Sep 12 2022 Dirk Müller - update to 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 * Fri Jul 29 2022 Lukas Müller - Update to Mercurial 6.2.1. * 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) * sslutil: use proper attribute to select python 3.7+ * sslutil: another use proper attribute to select python 3.7+ * mergestate: action name was str * packaging: update keyring on Windows to avoid spurious stacktraces * packaging: bump dulwich to 0.20.45 * debug-discovery: fix a typo in the doc * debug-discovery: properly apply remote filtering in \"old\" mode * debug-discovery: also gather details on tree-discovery queries type * debug-discovery: gather the right number of roundtrips for tree discovery * debug-discovery: do not abort on unrelated repositories * debug-discovery: deal with case where common is empty * tree-discovery: fix the request debug output and progress location * debug-discovery: apply spelling fixes from Raphaël * Tue Jul 19 2022 Andrei Dziahel - Mercurial 6.2 Regularly scheduled major release. This is the first Python 3 only version. + 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 * Fri Jun 17 2022 Andrei Dziahel - Mercurial 6.1.4 Additional stable release just before 6.2 since we\'re dropping Python 2. * url: raise error if CONNECT request to proxy was unsuccessful * docker: avoid /tmp write access issues by fixing permissions * logcmdutil: use the same data as {file *} template keywords (issue6642) * commit: allow to close branch when committing change over a closed head * rust-status: don\'t trigger dirstate v1 rewrite when only v2 data is changed * purge: prevent a silly crash with --confirm --files * rust: relax im-rc dependency to allow minor updates * Improve PyPy support * Improve py3 error handling * Documentation fixes- Mercurial 6.1.3: * security: + narrow_widen_acl: enforce narrowacl in narrow_widen (SEC) 6b10151b9621 * other: + 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 * Sat May 07 2022 Andrei Dziahel - removed _service in favour of running download_files manually- 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 (dd2503a63d33) * * * 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 * Fri Apr 15 2022 Dirk Müller - udpate to 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 * Wed Mar 02 2022 Andrei Dziahel - Mercurial 6.1 Regularly scheduled feature release. This is the last release to support Python 2. Mercurial is Python 3 only starting with 6.2 + 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..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. * Sat Dec 04 2021 Andrei Dziahel - Mercurial 6.0 Regularly scheduled feature release. This is the last release to support Python 2. Python 2 support will be dropped for all platforms in Mercurial 6.1. + 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 + 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 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 * Added a compatibility fix for Python 3.11 * Sat Nov 06 2021 Andrei Dziahel - Mercurial 5.9.3 + Bug fixes: * Fixed committing empty files with `narrow` * Allow overriding `pip`\'s pep517 compliance to build C or Rust extensions * Fixed regression on outgoing email when not specifying revisions * Fixed a regression causing bookmarks to disappear when using Rust persistent nodemap See https://www.mercurial-scm.org/repo/hg/log?rev=5.9.2..5.9.3 for complete changelog- Mercurial 5.9.2 No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=5.9.1..5.9.2 for changelog * Fri Sep 24 2021 Stefan Weiberg - Adding bug and CVE references from SLE to prepare the submission for SLE 15 SP4/Leap 15.4- CVE-2019-3902 (bsc#1133035) not affecting versions 5.0+ SLE internal patches removed: * hg-CVE-2019-3902-fix1.patch * hg-CVE-2019-3902-fix2.patch * hg-CVE-2019-3902-fix3.patch- CVE-2018-17983 (bsc#1110899) not affecting versions 4.7.2+ SLE internal patch removed: * hg-CVE-2018-17983.patch- CVE-2018-13346 (bsc#1100354), CVE-2018-13347 (bsc#1100355), CVE-2018-13348 (bsc#1100353) not affecting versions 4.6.1+ SLE internal patches removed: * hg-mpatch-fix01.patch * hg-mpatch-fix02.patch * hg-mpatch-fix03.patch * hg-mpatch-fix04.patch * hg-mpatch-fix05.patch * hg-mpatch-fix06.patch * hg-mpatch-fix07.patch * hg-mpatch-fix08.patch * hg-mpatch-fix09.patch * Mon Sep 20 2021 Lukas Müller - Provide mercurial tests in a package mercurial-tests. * Thu Sep 02 2021 Andrei Dziahel - Mercurial 5.9.1 No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=5.9..5.9.1 for changelog- Mercurial 5.9 + New Features * `hg config` now has a `--source` option to show where each configuration value comes from. * Wed Jul 14 2021 Andrei Dziahel - Mercurial 5.8.1 No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=5.8..5.8.1 for changes * Sun May 09 2021 Andrei Dziahel - Mercurial 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.` 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 instalation built without the fast Rust implementation will refuse to interract 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. + Internal API Changes * `changelog.branchinfo` is deprecated and will be removed after 5.8. It is superseded by `changelogrevision.branchinfo`. * Callbacks for revlog.addgroup and the changelog._nodeduplicatecallback hook now get a revision number as argument instead of a node. * revlog.addrevision returns the revision number instead of the node. * `nodes.nullid` and related constants are being phased out as part of the deprecation of SHA1. Repository instances and related classes provide access via `nodeconstants` and in some cases `nullid` attributes.- updated mercurial-locale-path-fix.patch * Thu Apr 29 2021 Andrei Dziahel - enable building `chg` (thanks AATTexpehaa) * Mon Apr 05 2021 Andrei Dziahel - Mercurial 5.7.1 * No upstream release notes, see https://www.mercurial-scm.org/repo/hg/log?rev=tag%28%225.7%22%29%3A%3Atag%28%225.7.1%22%29 * Mon Feb 08 2021 Andrei Dziahel - added the _service file for updating sources with single command- Mercurial 5.7 This is a regularly-scheduled quarterly feature release. + 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.`, where `` can be e.g. `rebase`. As part of this effort, the default format from `hg rebase` was reorganized a bit. * `hg purge` is now a core command using `--confirm` by default. * `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 ` and `--to ` arguments as clearer alternatives to `-r `. `-r ` 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..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. * The `rev-branch-cache` is now updated incrementally whenever changesets are added. + 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. + Internal API Changes * `changelog.branchinfo` is deprecated and will be removed after 5.8. It is superseded by `changelogrevision.branchinfo`. * Sat Dec 05 2020 Andreas Stieger - mercurial 5.6.1: * no upstream changelog * Fri Nov 13 2020 Andrei Dziahel - Mercurial 5.6 This is a regularly-scheduled quarterly feature release. * New Features + `hg mv -A` can now be used with `--at-rev`. It behaves just like `hg cp -A --at-rev`, i.e. it marks the destination as a copy of the source whether or not the source still exists but the source must exist in the parent revision). + New revset predicate `diffcontains(pattern)` for filtering revisions the same way as `hg grep --diff pattern`. + The memory footprint per changeset and per file during pull/unbundle operations has been significantly reduced. * Internal API Changes + `merge.update()` is now private (renamed to `_update()`). Hopefully the higher-level functions available in the same module cover your use cases. + `phases.registernew` now takes a set of revisions instead of a list of nodes. `phases.advanceboundary` takes an optional set of revisions in addition to the list of nodes. The corresponding members of the `phasecache` class follow this change. + The `addgroup` member of `revlog` classes no longer keeps a list of all found nodes. It now returns `True` if a node was found in the group. An optional callback for duplicated nodes can be used by callers to keep track of all nodes themselve. + The `_chaininfocache` of `revlog` classes has been changed from a dict to a LRU cache. * Sat Oct 03 2020 Andreas Stieger - Mercurial 5.5.2: * fix a crash in the log command * bug fixes in hgdemandimport * stip: with --keep, consider all revs \"removed\" from the wcp * Thu Sep 03 2020 Andrei Dziahel - Mercurial 5.5.1: Regularly scheduled bug fix release. * bug fixes + keepalive: Do not append _rbuf if _raw_readinto exists (issue6356) * Tue Aug 04 2020 Andrei Dziahel - Mercurial 5.5: This is a regularly-scheduled quarterly feature release * 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). * Thu Jul 02 2020 Andreas Stieger - Mercurial 5.4.2: * rebase: avoid clobbering wdir() with --dry-run or --confirm * curses: do not initialize LC_ALL to user settings * Sat Jun 06 2020 Andreas Stieger - Mercurial 5.4.1: * graft-state: save --base in graft\'s state, fixing bug with graft --continue * graft: fix --base value to be saved in state file * dirstate: make sure the dirstate is loaded before the changelog * bash_completion: do not use aliased hg if it sources a script * demandimport: fix compatibility with meta path finders w/o find_spec() method * flags: read flag from dirstate/disk for workingcopyctx * fsmonitor: coerce \'clock\' variable to byte-string * url: fix a bytes vs str crash in processing proxy headers * Sun May 03 2020 Andreas Stieger - Mercurial 5.4: * 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. \'AATT\' still takes precedence, so what used to be marked \'AATT\' still is. * 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. * 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 * changes that may affect backwards compatibility- there is no canonical upstream signing key, remove * Sun May 03 2020 Andreas Stieger - fix bash completion script (boo#1170703) * Thu Mar 19 2020 Andreas Stieger - Mercurial 5.3.1 * Mon Feb 10 2020 Andrei Dziahel - Mercurial 5.3 This is a regularly-scheduled quarterly feature release. See release notes at https://www.mercurial-scm.org/wiki/Release5.3- drop mercurial-4.8-python2-shebang.patch because of switch to Python 3- fixed and refreshed mercurial-locale-path-fix.patch * Fri Jan 03 2020 Matej Cepl - Switch Mercurial to Python 3 (it should be supported already, according to https://www.mercurial-scm.org/wiki/Python3)- Fix rpmlint warnings. * Fri Dec 06 2019 Andreas Stieger - Mercurial 5.2.1 * Sun Nov 17 2019 Andrei Dziahel - Mercurial 5.2 This is a regularly-scheduled quarterly feature release. + New Features * The amend extension supports the `--currentuser` argument. * The amend extension supports the `--close-branch` argument. * The amend extension supports the `--secret` argument. * The uncommit extension supports the `rewrite.update-timestamp` config option. + Backwards Compatibility Changes * A shell that supports `$(command)` syntax for command substitution is now required for running the test suite. The test runner normally uses `sh`, so if that is a shell that doesn\'t support `$(command)` syntax, you can override it by setting `$HGTEST_SHELL` or by passing it to `run-tests.py --shell `. * The (experimental) narrow extension\'s wire protocol changed. If you\'re using it, you\'ll need to make sure to upgrade server and client at the same time.- refreshed mercurial.keyring * Wed Oct 09 2019 Andrei Dziahel - Mercurial 5.1.2 Regularly scheduled bug fix release. * extensions + phabricator: don\'t abort if property writing fails during amending * tests + test: allow different result for zstd compression (issue6188) * Sun Sep 15 2019 Andrei Dziahel - Mercurial 5.1.1 Regularly scheduled bug fix release. * commands + bookmarks: actual fix for race condition deleting bookmark * 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 * tests + various test runner fixes + fixed use of `tr --delete` for tr(1) portability * Fri Aug 02 2019 Andrei Dziahel - Mercurial 5.1 This is a regularly-scheduled quarterly feature release. * 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.\" * 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). * 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\". * 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. * 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. * Tue Jul 09 2019 Andrei Dziahel - Mercurial 5.0.2 A regularly scheduled bugfix release. + commands * Help fixes on hg mv and hg cp + 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 for more details. * Wed Jun 19 2019 Andrei Dziahel - Mercurial 5.0.1 A regularly scheduled bugfix release. + commands * bookmark: also make bookmark cache depends of the changelog * commit: allow --interactive to work again when naming a directory (issue6131) + unsorted * manifest: avoid corruption by dropping removed files with pure (issue5801) * sslutil: fsencode path returned by certifi (issue6132) * Wed May 15 2019 Andrei Dziahel - Mercurial 5.0 This is a regularly-scheduled quarterly feature release. + New Features * Python 3 Support (Beta) * `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 + Other Improvements * Improved color scheme for histedit\'s curses interface, making it more consistent with the curses hunk selector. + Bug Fixes * Histedit\'s curse interface has improved support for non ascii characters. + 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) * Fri Apr 12 2019 Wolfgang Rosenauer - require openssl python module for runtime (not only build) (boo#1132347) * Tue Mar 19 2019 Andrei Dziahel - Mercurial 4.9.1 A regularly scheduled bugfix release, late due to vacations and similar disruptions at the regular time. * commands + record: prevent commits that don\'t pick up dirty subrepo changes (issue6102) * extensions + rebase: add missing dashes in help text * unsorted + subrepo: avoid false unsafe path detection on Windows + test-https: add some more known failure messages of client certs (issue6030) * Fri Feb 01 2019 Andrei Dziahel - Mercurial 4.9 This is a regularly-scheduled quarterly feature release. See complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.9_.282019-02-01.29 * Security Fixes It was possible to use symlinks and subrepositories to defeat Mercurial\'s path-checking logic and write files outside a repository. This has been fixed. Users on older versions can either disable subrepositories witt ``` [subrepos] allowed = false ``` in their configuration or by ensuring any cloned repositories don\'t contain malicious symlinks. * New Features + \'hg histedit\' will now present a curses UI if curses is available and \'ui.interface\' or \'ui.interface.histedit\' is set to \'curses\'. + The \'sparse-revlog\' delta strategy is enabled by default for new repositories. See `hg help config.format.sparse-revlog` for details. * Other Notable Features + New `rewrite.update-timestamp=True` option to update the commit timestamp on history editing (e.g. amend.) + New `ui.message-output=stderr` option for scripting, which prevents status messages from interleaved. + New `rootglob:` filename pattern for a glob that is rooted at the root of the repository. See `hg help patterns` and `hg help hgignore` for details. + Some more reimplementation of ancestry algorithms in Rust for better performance. * Backwards Compatibility Changes + Boolean options passed to the logtoprocess extension are now formatted as \"0\" or \"1\" instead of \"None\", \"False\", or \"True\". + The logtoprocess extension no longer supports invalid \"ui.log()\" arguments. A log message is always formatted and passed in to the \"$MSG1\" environment variable. * Internal API Changes + Status messages may be sent to a dedicated stream depending on configuration. Don\'t use \"ui.status()\", etc. as a shorthand for conditional writes. Use \"ui.write()\" for data output. + Add \'exthelper\' class to simplify extension writing by allowing functions, commands, and configitems to be registered via annotations. The previous APIs are still available for use. + The extension hook \"extsetup\" without a \'ui\' argument has been deprecated, and will be removed in the next version. Add a \'ui\' argument to avoid the deprecation warning. * Tue Jan 08 2019 Andrei Dziahel - Mercurial 4.8.2 This is a regularly-scheduled bugfix release containing following fixes: * commands + update: do not pass in user revspec as default destination (issue6044) * core + match: fix assertion for fileset with no context (issue6046) + revlog: catch delta base value under -1 + revlog: catch revlog corruption in index_baserev + server: always close http socket if responding with an error (issue6033) + vfs: ensure closewrapbase fh doesn\'t escape by entering context manager * extensions + phabricator: properly encode boolean types in the request body * unsorted + windows: ensure mixedfilemodewrapper fd doesn\'t escape by entering context mgr + worker: do not swallow exception occurred in main process * Wed Dec 05 2018 Andrei Dziahel - Mercurial 4.8.1 A regularly scheduled bugfix release. Some security fixes are included, but all are expected to be low-risk. * commands - commandserver: get around ETIMEDOUT raised by selectors2 - graft: do not try to skip rev derived from ancestor more than once (issue6024) - verify: provide unit to ui.makeprogress() * core - revlog: fix out-of-bounds access by negative parents read from revlog (SEC) * extensions - rebase: abort in-mem rebase if there\'s a dirty merge state - rebase: fix dir/file conflict detection when using in-mem merge - rebase: fix path auditing to audit path relative to repo root (issue5818) - rebase: preserve working copy when redoing in-mem rebase on disk * unsorted - tests: stabilize test-inherit-mode.t on FreeBSD and macOS (issue6026) * Tue Nov 06 2018 Andrei Dziahel - mercurial-4.8-python2-shebang.patch: fixes boo#1114895- explicitly depend on Python 2.7+ * Sat Nov 03 2018 Andrei Dziahel - Mercurial 4.8 This is a regularly-scheduled quarterly feature release. See release overview at https://www.mercurial-scm.org/wiki/Release4.8 and complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.8_.282018-11-02.29 * Tue Oct 02 2018 Andrei Dziahel - Mercurial 4.7.2 This is a regularly-scheduled bugfix release containing following fixes: * security + Fix a potential out-of-bounds read in manifest parsing C code. * core + various minor correctness fixes in revsets for commonancestors() and similar * unsorted + chgserver: do not send system() back to client if stdio redirected (issue5992) + procutil: compare fd number to see if stdio protection is needed (issue5992) * Wed Sep 05 2018 Andrei Dziahel - Mercurial 4.7.1 This is a regularly-scheduled bugfix release containing following fixes: * commands + merge: do not delete untracked files silently (issue5962) * core + revlog: fix descendant deprecated method * hgweb + hgweb: load revcount + 1 entries to fill nextentry in log page (issue5972) * performance + remotephase: avoid full changelog iteration (issue5964) + remotephase: fast path newheads computation in simple case (issue5964) + scmutil: avoid quadratic membership testing (issue5969) + sparse-revlog: fix delta validity computation * Sun Aug 12 2018 develop7AATTdevelop7.info- Mercurial 4.7 This is a regularly-scheduled quarterly feature release and has it\'s own release notes page which can be found here: [Full release notes](https://www.mercurial-scm.org/wiki/Release4.7) * Tue Jul 03 2018 develop7AATTdevelop7.info- Mercurial 4.6.2 This is a regularly-scheduled bugfix release containing following fixes: * merge: do not fill manifest of committed revision with pseudo node (issue5526) * crecord: fix line number in hunk header (issue5917) * lazymanifest: don\'t crash when out of memory (issue5916) * procutil: use unbuffered stdout on Windows * Fri Jun 08 2018 develop7AATTdevelop7.info- Mercurial 4.6.1 This is a regularly-scheduled bugfix release that also contains security fixes. * Security Fixes Multiple issues found in mpatch.c with a fuzzer: + OVE-20180430-0001 + OVE-20180430-0002 + OVE-20180430-0004 With the following fixes: mpatch: be more careful about parsing binary patch data (SEC) mpatch: protect against underflow in mpatch_apply (SEC) mpatch: ensure fragment start isn\'t past the end of orig (SEC) mpatch: fix UB in int overflows in gather() (SEC) mpatch: fix UB integer overflows in discard() (SEC) mpatch: avoid integer overflow in mpatch_decode (SEC) mpatch: avoid integer overflow in combine() (SEC) No exploits are known at the time, however, it is highly recommended that all users upgrade. * Bug Fixes Also included in this release are the following, + zstandard: pull in bug fixes from upstream 0.9.1 (issue5884) + bundle2: fix old clients from reading newer format (issue5872) + bdiff: fix xdiff long/int64 conversion (issue5885) + push: continue without locking on lock failure other than EEXIST (issue5882) + lfs: fix crash in command server (issue5902) + hghave: fix deadlock in test runner + rebase: fix error when computing obsoletenotrebased (issue5907) + rebase: prioritize indicating an interrupted rebase over update (issue5838) + revset: pass in lookup function to matchany() (issue5879) * Fri May 11 2018 develop7AATTdevelop7.info- Mercurial 4.6 This is a regularly-scheduled quarterly feature release. See complete changelog at https://www.mercurial-scm.org/wiki/Release4.6 * Wed Apr 04 2018 develop7AATTdevelop7.info- Mercurial 4.5.3 This is a regularly-scheduled bugfix release. * Bug Fixes + rebase: on abort, don\'t strip commits that didn\'t need to be rebased (issue5822) + hgweb: garbage collect on every request + amend: abort if unresolved merge conflicts found (issue5805) * Sat Mar 10 2018 develop7AATTdevelop7.info- Modernize spec-file by calling spec-cleaner * Wed Mar 07 2018 develop7AATTdevelop7.info- Mercurial 4.5.2 (4.5.2 was released immediately after 4.5.1 to fix a release oversight.) 1. Security Fixes (CVE-2018-1000132,bsc#1085211) All versions of Mercurial prior to 4.5.2 have vulnerabilities in the HTTP server that allow permissions bypass to: * Perform writes on repositories that should be read-only * Perform reads on repositories that shouldn\'t allow read access 2. Backwards Compatibility Changes The \"batch\" wire protocol command now enforces permissions of each invoked sub-command. Wire protocol commands must define their operation type or the \"batch\" command will assume they can write data and will prevent their execution on HTTP servers unless the HTTP request method is POST, the server is configured to allow pushes, and the (possibly authenticated) HTTP user is authorized to perform a push. Wire protocol commands not defining their operation type in \"wireproto.PERMISSIONS\" are now assumed to be used for \"push\" operations and access control to run those commands is now enforced accordingly. 3. Bug Fixes fileset: don\'t abort when running copied() on a revision with a removed file date: fix parsing months setup: only allow Python 3 from a source checkout (issue5804) annotate: do not poorly split lines at CR (issue5798) subrepo: don\'t attempt to share remote sources (issue5793) subrepo: activate clone pooling to enable sharing with remote URLs changegroup: do not delta lfs revisions revlog: do not use delta for lfs revisions revlog: resolve lfs rawtext to vanilla rawtext before applying delta See full cnahgelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5.1_.2F_4.5.2_.282018-03-06.29 * Sun Feb 04 2018 develop7AATTdevelop7.info- Mercurial 4.5 See full changelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5-rc_.282018-01-22.29 1. New Features 1.1. revert --interactive The revert command now accepts the flag --interactive to allow reverting only some of the changes to the specified files. 1.2. Accessing hidden changesets Set config option `experimental.directaccess = True` to access hidden changesets from read only commands. 1.3. githelp extension The githelp extension provides the `hg githelp` command. This command attempts to convert a git command to its Mercurial equivalent. The extension can be useful to Git users new to Mercurial. 1.4. Largefiles changes largefiles: add a \'debuglfput\' command to put largefile into the store largefiles: add support for \'largefiles://\' url scheme largefiles: allow to run \'debugupgraderepo\' on repo with largefiles largefiles: convert EOL of hgrc before appending to bytes IO largefiles: explicitly set the source and sink types to \'hg\' for lfconvert largefiles: modernize how capabilities are added to the wire protocol 2. hgweb changes hgweb now shows more information about commits: phase (if it\'s not public), obsolescence status (with a short explanation and links to the successors) and instabilities (e.g. orphan, phase-divergent or content-divergent). Client-side graph code has been simplified by delegating more work to the backend, so /graph page is now more in sync with /log page, visually and feature-wise. Unfortunately, this code change means that 3rd-party themes for 4.5+ are required to have graphentry.tmpl template available (copy it from the base theme if you don\'t use %include and then reference it in map file) and render entries in graph.tmpl -- look at one of the core themes to see what it needs to look like. JS functions that create graph vertices and edges are now available in Graph.prototype, making it possible to call the original functions from custom theme-specific functions if needed. Graph now shows different symbols for normal, branch-closing, obsolete and unstable commits, and marks currently checked out commit with a circle around its graph node. There\'s also now json-graph API endpoint that can be used for rendering commit graph in 3rd-party applications. 2.1. Other Changes When interactive revert is run against a revision other than the working directory parent, the diff shown is the diff to _apply_ to the working directory, rather than the diff to _discard_ from the working copy. This is in line with related user experiences with \'git\' and appears to be less confusing with \'ui.interface=curses\'. Let \'hg rebase\' avoid content-divergence by skipping obsolete changesets (and their descendants) when they are present in the rebase set along with one of their successors but none of their successors is in destination. A new experimental config flag, `rebase.experimental.inmemory`, makes rebase perform an in-memory merge instead of doing it on-disk in the working copy. The `HGPLAINEXCEPT` environment variable can now include color to allow automatic output colorization in otherwise automated environments. A new `unamend` command in `uncommit` extension which undoes the effect of the amend command by creating a new changeset which was there before amend and moving the changes that were amended to the working directory. A \'--abort\' flag to merge command to abort the ongoing merge. An experimental flag \'--rev\' to \'hg branch\' which can be used to change branch of changesets. bundle2 read I/O significantly improved bundle2 memory use significantly reduced during read clonebundle: it is now possible to serve the clonebundle using a git-lfs compatible server. templatefilters: add slashpath() to convert path separator to slash (issue5572) A new experimental config flag, \'inline-color-diff\', adds within-line color diff capacity histedit: add support to output nodechanges using formatter to help with editor integrations 3. Backwards Compatibility Changes `log --follow-first -rREV`, which is deprecated, now follows the first parent of merge revisions from the specified REV just like `log --follow -rREV`. `log --follow -rREV FILE..` now follows file history across copies and renames. transaction: register summary callbacks only at start of transaction hgweb\'s graph view no longer supports browsers that lack |
|
|