relnotes/5.8
author Simon Sapin <simon.sapin@octobus.net>
Fri, 16 Apr 2021 12:12:41 +0200
changeset 47127 be579775c2d9
parent 47013 32b527417ba3
permissions -rw-r--r--
dirstate-tree: Add the new `status()` algorithm With the dirstate organized in a tree that mirrors the structure of the filesystem tree, we can traverse both trees at the same time in order to compare them. This is hopefully more efficient that building multiple big hashmaps for all of the repository’s contents. Differential Revision: https://phab.mercurial-scm.org/D10547
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47013
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     1
== New Features ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     2
 
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     3
 * `hg purge` is now a core command using `--confirm` by default.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     4
 
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     5
 * The `rev-branch-cache` is now updated incrementally whenever changesets
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     6
   are added.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     7
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     8
 * The new options `experimental.bundlecompthreads` and
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     9
   `experimental.bundlecompthreads.<engine>` can be used to instruct
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    10
   the compression engines for bundle operations to use multiple threads
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    11
   for compression. The default is single threaded operation. Currently
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    12
   only supported for zstd.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    13
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    14
== Default Format Change ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    15
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    16
These changes affects newly created repositories (or new clone) done with
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    17
Mercurial 5.8.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    18
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    19
  * The `ZSTD` compression will now be used by default for new repositories
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    20
    when available. This compression format was introduced in Mercurial 5.0,
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    21
    released in May 2019. See `hg help config.format.revlog-compression` for
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    22
    details.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    23
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    24
  * Mercurial installation built with the Rust parts will now use the
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    25
    "persistent nodemap" feature by default. This feature was introduced in
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    26
    Mercurial 5.4 (May 2020). However Mercurial instalation built without the
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    27
    fast Rust implementation will refuse to interract with them by default.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    28
    This restriction can be lifted through configuration.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    29
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    30
    See `hg help config.format.use-persistent-nodemap` for details
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    31
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    32
== New Experimental Features ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    33
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    34
 * There's a new `diff.merge` config option to show the changes
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    35
    relative to an automerge for merge changesets. This makes it
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    36
    easier to detect and review manual changes performed in merge
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    37
    changesets. It is supported by `hg diff --change`, `hg log -p`
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    38
    `hg incoming -p`, and `hg outgoing -p` so far.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    39
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    40
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    41
== Bug Fixes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    42
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    43
 * gracefully recover from inconsistent persistent-nodemap data from disk.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    44
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    45
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    46
== Backwards Compatibility Changes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    47
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    48
 * In normal repositories, the first parent of a changeset is not null,
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    49
   unless both parents are null (like the first changeset). Some legacy
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    50
   repositories violate this condition. The revlog code will now
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    51
   silentely swap the parents if this condition is tested. This can
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    52
   change the output of `hg log` when explicitly asking for first or
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    53
   second parent. The changesets "nodeid" are not affected.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    54
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    55
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    56
== Internal API Changes ==
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    57
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    58
 * `changelog.branchinfo` is deprecated and will be removed after 5.8.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    59
   It is superseded by `changelogrevision.branchinfo`.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    60
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    61
 * Callbacks for revlog.addgroup and the changelog._nodeduplicatecallback hook
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    62
   now get a revision number as argument instead of a node.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    63
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    64
 * revlog.addrevision returns the revision number instead of the node.
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    65
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    66
 * `nodes.nullid` and related constants are being phased out as part of
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    67
   the deprecation of SHA1. Repository instances and related classes
32b527417ba3 relnotes: copy contents of "next" to "5.8" and clear "next"
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    68
   provide access via `nodeconstants` and in some cases `nullid` attributes.