relnotes/5.8
branchstable
changeset 47014 32b527417ba3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/relnotes/5.8	Tue Apr 20 08:28:11 2021 -0700
@@ -0,0 +1,68 @@
+== New Features ==
+ 
+ * `hg purge` is now a core command using `--confirm` by default.
+ 
+ * The `rev-branch-cache` is now updated incrementally whenever changesets
+   are added.
+
+ * The new options `experimental.bundlecompthreads` and
+   `experimental.bundlecompthreads.<engine>` can be used to instruct
+   the compression engines for bundle operations to use multiple threads
+   for compression. The default is single threaded operation. Currently
+   only supported for zstd.
+
+== Default Format Change ==
+
+These changes affects newly created repositories (or new clone) done with
+Mercurial 5.8.
+
+  * The `ZSTD` compression will now be used by default for new repositories
+    when available. This compression format was introduced in Mercurial 5.0,
+    released in May 2019. See `hg help config.format.revlog-compression` for
+    details.
+
+  * Mercurial installation built with the Rust parts will now use the
+    "persistent nodemap" feature by default. This feature was introduced in
+    Mercurial 5.4 (May 2020). However Mercurial 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.