view relnotes/5.6 @ 47425:e0a314bcbc9d

revlog: Extract low-level random-access file read caching logic The `revlog` class does many things, among which fulfilling requests for arbitrary byte slices from the revlog "data file" by reading a larger chunk and caching it in memory, in order to reduce the number of system calls. This extracts that logic into a new class, so that it may later also be used for the side-data file (with another instance of that class). The copyright notice of the new file does not include a date or author name since such information tend not to be kept up-to-date: https://www.linuxfoundation.org/en/blog/copyright-notices-in-open-source-software-projects/ Differential Revision: https://phab.mercurial-scm.org/D10878
author Simon Sapin <simon.sapin@octobus.net>
date Tue, 08 Jun 2021 19:55:00 +0200
parents 84eb4c833c41
children
line wrap: on
line source

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