relnotes/5.5
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 16 Apr 2021 14:59:13 +0200
changeset 46970 99aed233aa8d
parent 45240 53a6febafc66
permissions -rw-r--r--
nodemap: test various corruption scenario for the persistent nodemap Corruption can happens in the wild, either because some of our code is buggy or because repository were shared/transfered in a strange manners. Currently one of the corruption case (not enough data) lead to a crash. We add explicit tests for theses cases. Differential Revision: https://phab.mercurial-scm.org/D10457
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     1
== New Features ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     2
45062
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
     3
 * clonebundles can be annotated with the expected memory requirements
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
     4
   using the `REQUIREDRAM` option. This allows clients to skip
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
     5
   bundles created with large zstd windows and fallback to larger, but
72feaeb510b3 clonebundles: optional memory-requirement attribution
Joerg Sonnenberger <joerg@bec.de>
parents: 44996
diff changeset
     6
   less demanding bundles.
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
     7
45169
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
     8
 * The `phabricator` extension now provides more functionality of the
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
     9
   arcanist CLI like changing the status of a differential.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    10
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    11
 * Phases processing is much faster, especially for repositories with
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    12
   old non-public changesets.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    13
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
    14
44367
9dab3fa64325 copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44365
diff changeset
    15
== New Experimental Features ==
44343
8561ad49915d revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents: 44289
diff changeset
    16
44905
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    17
 * The core of some hg operations have been (and are being)
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    18
   implemented in rust, for speed. `hg status` on a repository with
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    19
   300k tracked files goes from 1.8s to 0.6s for instance.
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    20
   This has currently been tested only on linux, and does not build on
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    21
   windows. See rust/README.rst in the mercurial repository for
f330d6117a5b relnotes: advertize the possibility to use rust
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44893
diff changeset
    22
   instructions to opt into this.
44412
edc8504bc26b exchange: turn on option that makes concurrent pushes work better
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 44398
diff changeset
    23
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    24
 * An experimental config `rewrite.empty-successor` was introduced to control
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    25
   what happens when rewrite operations result in empty changesets.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    26
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    27
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    28
== Bug Fixes ==
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    29
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    30
 * For the case when connected to a TTY, stdout was fixed to be line-buffered
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    31
   on Python 3 (where it was block-buffered before, causing the process to seem
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    32
   hanging) and Windows on Python 2 (where it was unbuffered before).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    33
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    34
 * Subversion sources of the convert extension were fixed to work on Python 3.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    35
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    36
 * Subversion sources of the convert extension now interpret the encoding of
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    37
   URLs like Subversion. Previously, there were situations where the convert
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    38
   extension recognized a repository as present but Subversion did not, and
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    39
   vice versa.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    40
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    41
 * The empty changeset check of in-memory rebases was fixed to match that of
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    42
   normal rebases (and that of the commit command).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    43
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    44
 * The push command now checks the correct set of outgoing changesets for
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    45
   obsolete and unstable changesets. Previously, it could happen that the check
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    46
   prevented pushing changesets which were already on the server.
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    47
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
    48
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    49
== Backwards Compatibility Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    50
45190
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    51
 * Mercurial now requires at least Python 2.7.9 or a Python version that
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    52
   backported modern SSL/TLS features (as defined in PEP 466), and that Python
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    53
   was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    54
   (likely this requires the OpenSSL version to be at least 1.0.1).
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    55
 
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    56
 * The `hg perfwrite` command from contrib/perf.py was made more flexible and
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    57
   changed its default behavior. To get the previous behavior, run `hg perfwrite
189030efd7bb relnotes: fix indentation
Manuel Jacob <me@manueljacob.de>
parents: 45189
diff changeset
    58
   --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`.
44996
c2df0bca0dfa perf: make `hg perfwrite` more flexible
Manuel Jacob <me@manueljacob.de>
parents: 44905
diff changeset
    59
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    60
 * The absorb extension now preserves changesets with no file changes that can
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    61
   be created by the commit command (those which change the branch name
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    62
   compared to the parent and those closing a branch head).
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    63
44396
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44392
diff changeset
    64
42271
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    65
== Internal API Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    66
44853
ba5688e3b3bd relnotes: add API change note per request in D8502
Augie Fackler <augie@google.com>
parents: 44827
diff changeset
    67
 * logcmdutil.diffordiffstat() now takes contexts instead of nodes.
ba5688e3b3bd relnotes: add API change note per request in D8502
Augie Fackler <augie@google.com>
parents: 44827
diff changeset
    68
44856
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
    69
 * The `mergestate` class along with some related methods and constants have
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
    70
   moved from `mercurial.merge` to a new `mercurial.mergestate` module.
b7808443ed6a mergestate: split out merge state handling code from main merge module
Augie Fackler <augie@google.com>
parents: 44853
diff changeset
    71
45169
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    72
 * The `phasecache` class now uses sparse dictionaries for the phase data.
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    73
   New accessors are provided to detect if any non-public changeset exists
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    74
   (`hasnonpublicphases`) and get the correponsponding root set
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45062
diff changeset
    75
   (`nonpublicphaseroots`).
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    76
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    77
 * The `stdin`, `stdout` and `stderr` attributes of the `mercurial.pycompat`
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    78
   module were removed. Instead, the attributes of same name from the
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    79
   `mercurial.utils.procutil` module should be used, which provide more
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    80
   consistent behavior across Python versions and platforms.