relnotes/5.6
author Matt Harbison <matt_harbison@yahoo.com>
Fri, 16 Dec 2022 00:54:39 -0500
changeset 49812 58dff81ffba1
parent 45803 84eb4c833c41
permissions -rw-r--r--
typing: add type hints to the common posix/windows platform functions These are done in sync because some platforms have empty implementations, and it isn't obvious what the types should be without examining the other. We want the types aligned, so @overload definitions that differ aren't generated. The only differences here are the few methods that unconditionally raise an error are marked as `NoReturn`, which doesn't seem to bother pytype. A couple of the posix module functions needed to be updated with a modern ternary operator, because pytype seems to want to use the type of the second object in the old `return x and y` style.

== 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
   in the same way as `hg grep --diff pattern`.

 * The memory footprint per changeset and per file during pull/unbundle
   operations has been significantly reduced.


== New Experimental Features ==



== Bug Fixes ==



== Backwards Compatibility Changes ==



== 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 corresponeding 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 iff 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.