relnotes/5.1
branchstable
changeset 42692 cba59b338976
parent 42579 b8d54f4625cb
equal deleted inserted replaced
42684:9e0f1c80cddb 42692:cba59b338976
       
     1 == New Features ==
       
     2 
       
     3  * New config `commands.commit.post-status` shows status after successful
       
     4  commit.
       
     5 
       
     6  * `hg root` now has templating support, including support for showing
       
     7    where a repo share's source is. See `hg help -v root` for details.
       
     8 
       
     9  * New `--force-close-branch` flag for `hg commit` to forcibly close
       
    10    branch from a non-head changeset.
       
    11 
       
    12  * The curses-based interface for commands like `hg commit -i` now supports
       
    13    a range-select mechanism. Select the first line using space like before,
       
    14    navigate to the last line, and press X (capital x) to set all items in
       
    15    the range at once. Lowercase x has been added as a synonym for space to
       
    16    help reinforce the mechanism, and pressing enter/return continues to be a
       
    17    synonym for "toggle the current line and move down to the next item in
       
    18    this section."
       
    19 
       
    20 == New Experimental Features ==
       
    21 
       
    22  * New config `experimental.log.topo` makes `hg log -G` use
       
    23    topological sorting. This is especially useful for aliases since it
       
    24    lets the alias accept an `-r` option while still using topological
       
    25    sorting with or without the `-r` (unlike if you use the `sort(...,
       
    26    topo)` revset).
       
    27 
       
    28 
       
    29 == Bug Fixes  ==
       
    30 
       
    31  * issue4292: "hg log and {files} {file_adds} {file_mods} {file_dels}
       
    32    in template show wrong files on merged revision". See details in
       
    33    "Backwards Compatibility Changes".
       
    34 
       
    35 
       
    36 == Backwards Compatibility Changes ==
       
    37 
       
    38  * Removed (experimental) support for log graph lines mixing
       
    39    parent/grandparent styles. Setting
       
    40    e.g. `experimental.graphstyle.parent = !` and
       
    41    `experimental.graphstyle.grandparent = 3.` would use `!` for the
       
    42    first three lines of the graph and then `.`. This is no longer
       
    43    supported.
       
    44 
       
    45  * If `ui.origbackuppath` had been (incorrectly) configured to point
       
    46    to a file, we will now replace that file by a directory and put
       
    47    backups in that directory. This is similar to how we would
       
    48    previously replace files *in* the configured directory by
       
    49    subdirectories.
       
    50 
       
    51 * Template keyword `{file_mods}`, `{file_adds}`, and `{file_dels}`
       
    52    have changed behavior on merge commits. They used to be relative to
       
    53    the first parent, but they now consider both parents. `{file_adds}`
       
    54    shows files that exists in the commit but did not exist in either
       
    55    parent. `{file_dels}` shows files that do not exist in the commit
       
    56    but existed in either parent. `{file_mods}` show the remaining
       
    57    files from `{files}` that were not in the other two
       
    58    sets.
       
    59 
       
    60 
       
    61 == Internal API Changes ==
       
    62 
       
    63  * Matchers are no longer iterable. Use `match.files()` instead.
       
    64 
       
    65  * `match.visitdir()` and `match.visitchildrenset()` now expect the
       
    66    empty string instead of '.' to indicate the root directory.
       
    67 
       
    68  * `util.dirs()` and `util.finddirs()` now include an entry for the
       
    69    root directory (empty string).
       
    70 
       
    71  * shelve is no longer an extension now. it will be turned on by default.
       
    72 
       
    73  * New API to manage unfinished operations: Earlier there were distinct APIs
       
    74    which dealt with unfinished states and separate lists maintaining them
       
    75    that are `cmdutil.afterresolvestates`, `cmdutil.unfinishedstates` and
       
    76    `cmdutil.STATES`. Now these have been unified to a single
       
    77    API which handles the various states and their utilities. This API
       
    78    has been added to `state.py`. Now instead of adding to these 3 lists
       
    79    independently a state for a new operation can be registered using
       
    80    `addunfinished()` in `state` module.
       
    81 
       
    82  * `cmdutil.checkunfinished()` now includes detection for merge too.
       
    83 
       
    84  * merge abort has been disallowed in case an operation of higher
       
    85    precedence is in progress to avoid cases of partial abort of
       
    86    operations.
       
    87 
       
    88  * We used to automatically attempt to make extensions compatible with
       
    89    Python 3 (by translating their source code while loading it). We no
       
    90    longer do that.