view relnotes/next @ 46273:efc71bb71682

shelve: introduce class representing a shelf I'm about to make phase-based shelve not write `.hg` and `.patch` files. Having a class that represents a single shelf, regardless of which files it uses will help. I'm starting small with just a `.exists()` function. I plan to eventually remove the `shelvedfile` class once all functionality has been moved to the new class. By the way, I know that things you shelve are not typically themselves shelves. I still picked `Shelf` for the class because it's short (compared to e.g. `ShelvedChange`). Differential Revision: https://phab.mercurial-scm.org/D9700
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 07 Jan 2021 11:07:21 -0800
parents c4b792fa109e
children bb3a5c0df06b 38d76908c011
line wrap: on
line source

== New Features ==

 * There is a new config section for templates used by hg commands. It
   is called `[command-templates]`. Some existing config options have
   been deprecated in favor of config options in the new
   section. These are: `ui.logtemplate` to `command-templates.log`,
   `ui.graphnodetemplate` to `command-templates.graphnode`,
   `ui.mergemarkertemplate` to `command-templates.mergemarker`,
   `ui.pre-merge-tool-output-template` to
   `command-templates.pre-merge-tool-output`.

 * There is a new set of config options for the template used for the
   one-line commit summary displayed by various commands, such as `hg
   rebase`. The main one is `command-templates.oneline-summary`. That
   can be overridden per command with
   `command-templates.oneline-summary.<command>`, where `<command>`
   can be e.g. `rebase`. As part of this effort, the default format
   from `hg rebase` was reorganized a bit.

 * `hg strip`, from the strip extension, is now a core command, `hg
   debugstrip`. The extension remains for compatibility.

 * `hg diff` and `hg extdiff` now support `--from <rev>` and `--to <rev>`
   arguments as clearer alternatives to `-r <revs>`. `-r <revs>` has been
   deprecated.

 * The memory footprint per changeset during pull/unbundle
   operations has been further reduced.

 * There is a new internal merge tool called `internal:mergediff` (can
   be set as the value for the `merge` config in the `[ui]`
   section). It resolves merges the same was as `internal:merge` and
   `internal:merge3`, but it shows conflicts differently. Instead of
   showing 2 or 3 snapshots of the conflicting pieces of code, it
   shows one snapshot and a diff. This may be useful when at least one
   side of the conflict is similar to the base. The new marker style
   is also supported by "premerge" as
   `merge-tools.<tool>.premerge=keep-mergediff`.

 * External hooks are now called with `HGPLAIN=1` preset.

 * The `branchmap` cache is updated more intelligently and can be
   significantly faster for repositories with many branches and changesets.


== New Experimental Features ==

* `experimental.single-head-per-branch:public-changes-only` can be used
  restrict the single head check to public revision. This is useful for
  overlay repository that have both a publishing and non-publishing view
  of the same storage.


== Bug Fixes ==



== Backwards Compatibility Changes ==

 * `--force-lock` and `--force-wlock` options on `hg debuglock` command are
   renamed to `--force-free-lock` and `--force-free-wlock` respectively.


== Internal API Changes ==