view relnotes/next @ 45201:86f9b25d750b

hgweb: simplify now that we always have a single path Both `templatedir()` and `web.templatepath` are now always a single path (or None). Differential Revision: https://phab.mercurial-scm.org/D8788
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 21 Jul 2020 13:36:48 -0700
parents 3496b5f24371
children 045f5361bd12
line wrap: on
line source

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

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


== Internal API Changes ==

 * logcmdutil.diffordiffstat() now takes contexts instead of nodes.

 * The `mergestate` class along with some related methods and constants have
   moved from `mercurial.merge` to a new `mercurial.mergestate` module.

 * The `phasecache` class now uses sparse dictionaries for the phase data.
   New accessors are provided to detect if any non-public changeset exists
   (`hasnonpublicphases`) and get the correponsponding root set
   (`nonpublicphaseroots`).