mercurial/help/multirevs.txt
author Gregory Szorc <gregory.szorc@gmail.com>
Sat, 24 Oct 2015 19:56:39 +0100
changeset 27262 3d0feb2f978b
parent 9999 f91e5630ce7e
permissions -rw-r--r--
histedit: pick an appropriate base changeset by default (BC) Previously, `hg histedit` required a revision argument specifying which revision to use as the base for the current histedit operation. There was an undocumented and experimental "histedit.defaultrev" option that supported defining a single revision to be used if no argument is passed. Mercurial knows what changesets can be edited. And in most scenarios, people want to edit this history of everything on the current head that is rewritable. Making histedit do this by default and not require an explicit argument or additional configuration is a major usability win and will enable more people to use histedit. This patch changes the behavior of the experimental and undocumented "histedit.defaultrev" config option to select an appropriate base revision by default. Comprehensive tests exercising the edge cases in the new, somewhat complicated default revset have been added. Surprisingly, no tests broke. I guess we were never testing the behavior with no ANCESTOR argument (it used to fail with "abort: histedit requires exactly one ancestor revision"). The new behavior is much more user friendly. The functionality for choosing the default base revision has been moved to destutil.py, where it can easily be modified by extensions.

When Mercurial accepts more than one revision, they may be specified
individually, or provided as a topologically continuous range,
separated by the ":" character.

The syntax of range notation is [BEGIN]:[END], where BEGIN and END are
revision identifiers. Both BEGIN and END are optional. If BEGIN is not
specified, it defaults to revision number 0. If END is not specified,
it defaults to the tip. The range ":" thus means "all revisions".

If BEGIN is greater than END, revisions are treated in reverse order.

A range acts as a closed interval. This means that a range of 3:5
gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.