relnotes/next
author Martin von Zweigbergk <martinvonz@google.com>
Tue, 23 Mar 2021 14:15:40 -0700
changeset 46836 80cac9936324
parent 46793 6266d19556ad
child 46998 65d18001cfbf
permissions -rw-r--r--
reabase: call rewriteutil.precheck() a bit later We now filter out descendants of divergence-causing commits in `_handleskippingobsolete()`. The filtered-out commits are removed from the rebase set (`destmap` and `state`). We should therefore call `rewriteutil.precheck()` after `_handleskippingobsolete()`. This patch does that. It hasn't mattered so far because `rewriteutil.precheck()` doesn't yet check for divergence, but it will soon. This affects one test where we now fail because the user is trying to rebase an ancestor instead of failing because they tried to rebase a public commit. We have several similar tests just after, where we still fail because of the phase, so that seems fine. The difference in behavior also seems fine to me. Differential Revision: https://phab.mercurial-scm.org/D10258

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

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



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


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