relnotes/next
branchstable
changeset 45240 53a6febafc66
parent 45191 fc54f52779dd
child 45369 5178dd2233d0
equal deleted inserted replaced
45229:0ea08126a2af 45240:53a6febafc66
     1 == New Features ==
     1 == New Features ==
     2 
     2 
     3  * clonebundles can be annotated with the expected memory requirements
       
     4    using the `REQUIREDRAM` option. This allows clients to skip
       
     5    bundles created with large zstd windows and fallback to larger, but
       
     6    less demanding bundles.
       
     7 
       
     8  * The `phabricator` extension now provides more functionality of the
       
     9    arcanist CLI like changing the status of a differential.
       
    10 
       
    11  * Phases processing is much faster, especially for repositories with
       
    12    old non-public changesets.
       
    13 
     3 
    14 
     4 
    15 == New Experimental Features ==
     5 == New Experimental Features ==
    16 
     6 
    17  * The core of some hg operations have been (and are being)
       
    18    implemented in rust, for speed. `hg status` on a repository with
       
    19    300k tracked files goes from 1.8s to 0.6s for instance.
       
    20    This has currently been tested only on linux, and does not build on
       
    21    windows. See rust/README.rst in the mercurial repository for
       
    22    instructions to opt into this.
       
    23 
       
    24  * An experimental config `rewrite.empty-successor` was introduced to control
       
    25    what happens when rewrite operations result in empty changesets.
       
    26 
     7 
    27 
     8 
    28 == Bug Fixes ==
     9 == Bug Fixes ==
    29 
    10 
    30  * For the case when connected to a TTY, stdout was fixed to be line-buffered
       
    31    on Python 3 (where it was block-buffered before, causing the process to seem
       
    32    hanging) and Windows on Python 2 (where it was unbuffered before).
       
    33 
       
    34  * Subversion sources of the convert extension were fixed to work on Python 3.
       
    35 
       
    36  * Subversion sources of the convert extension now interpret the encoding of
       
    37    URLs like Subversion. Previously, there were situations where the convert
       
    38    extension recognized a repository as present but Subversion did not, and
       
    39    vice versa.
       
    40 
       
    41  * The empty changeset check of in-memory rebases was fixed to match that of
       
    42    normal rebases (and that of the commit command).
       
    43 
       
    44  * The push command now checks the correct set of outgoing changesets for
       
    45    obsolete and unstable changesets. Previously, it could happen that the check
       
    46    prevented pushing changesets which were already on the server.
       
    47 
    11 
    48 
    12 
    49 == Backwards Compatibility Changes ==
    13 == Backwards Compatibility Changes ==
    50 
    14 
    51  * Mercurial now requires at least Python 2.7.9 or a Python version that
       
    52    backported modern SSL/TLS features (as defined in PEP 466), and that Python
       
    53    was compiled against a OpenSSL version supporting TLS 1.1 or TLS 1.2
       
    54    (likely this requires the OpenSSL version to be at least 1.0.1).
       
    55  
       
    56  * The `hg perfwrite` command from contrib/perf.py was made more flexible and
       
    57    changed its default behavior. To get the previous behavior, run `hg perfwrite
       
    58    --nlines=100000 --nitems=1 --item='Testing write performance' --batch-line`.
       
    59 
       
    60  * The absorb extension now preserves changesets with no file changes that can
       
    61    be created by the commit command (those which change the branch name
       
    62    compared to the parent and those closing a branch head).
       
    63 
    15 
    64 
    16 
    65 == Internal API Changes ==
    17 == Internal API Changes ==
    66 
    18 
    67  * logcmdutil.diffordiffstat() now takes contexts instead of nodes.
       
    68 
       
    69  * The `mergestate` class along with some related methods and constants have
       
    70    moved from `mercurial.merge` to a new `mercurial.mergestate` module.
       
    71 
       
    72  * The `phasecache` class now uses sparse dictionaries for the phase data.
       
    73    New accessors are provided to detect if any non-public changeset exists
       
    74    (`hasnonpublicphases`) and get the correponsponding root set
       
    75    (`nonpublicphaseroots`).
       
    76 
       
    77  * The `stdin`, `stdout` and `stderr` attributes of the `mercurial.pycompat`
       
    78    module were removed. Instead, the attributes of same name from the
       
    79    `mercurial.utils.procutil` module should be used, which provide more
       
    80    consistent behavior across Python versions and platforms.