hg histedit#
interactively edit changeset history#
hg histedit [OPTIONS] ([ANCESTOR] | --outgoing [URL])
This command is provided by the histedit extension.
This command lets you edit a linear series of changesets (up to and including the working directory, which should be clean). You can:
pick to [re]order a changeset
drop to omit changeset
mess to reword the changeset commit message
fold to combine it with the preceding changeset (using the later date)
roll like fold, but discarding this commit's description and date
edit to edit this changeset (preserving date)
base to checkout changeset and apply further changesets from there
There are a number of ways to select the root changeset:
Specify ANCESTOR directly
Use --outgoing -- it will be the first linear changeset not included in destination. (See `hg help config.paths.default-push`)
Otherwise, the value from the "histedit.defaultrev" config option is used as a revset to select the base revision when ANCESTOR is not specified. The first revision returned by the revset is used. By default, this selects the editable history that is unique to the ancestry of the working directory.
If you use --outgoing, this command will abort if there are ambiguous outgoing revisions. For example, if there are multiple branches containing outgoing revisions.
Use "min(outgoing() and ::.)" or similar revset specification instead of --outgoing to specify edit target revision exactly in such ambiguous situation. See `hg help revsets` for detail about selecting revisions.
Examples:
A number of changes have been made. Revision 3 is no longer needed.
Start history editing from revision 3:
hg histedit -r 3An editor opens, containing the list of revisions, with specific actions specified:
pick 5339bf82f0ca 3 Zworgle the foobar pick 8ef592ce7cc4 4 Bedazzle the zerlog pick 0a9639fcda9d 5 Morgify the cromulancyAdditional information about the possible actions to take appears below the list of revisions.
To remove revision 3 from the history, its action (at the beginning of the relevant line) is changed to 'drop':
drop 5339bf82f0ca 3 Zworgle the foobar pick 8ef592ce7cc4 4 Bedazzle the zerlog pick 0a9639fcda9d 5 Morgify the cromulancyA number of changes have been made. Revision 2 and 4 need to be swapped.
Start history editing from revision 2:
hg histedit -r 2An editor opens, containing the list of revisions, with specific actions specified:
pick 252a1af424ad 2 Blorb a morgwazzle pick 5339bf82f0ca 3 Zworgle the foobar pick 8ef592ce7cc4 4 Bedazzle the zerlogTo swap revision 2 and 4, its lines are swapped in the editor:
pick 8ef592ce7cc4 4 Bedazzle the zerlog pick 5339bf82f0ca 3 Zworgle the foobar pick 252a1af424ad 2 Blorb a morgwazzle
Returns 0 on success, 1 if user intervention is required (not only for intentional "edit" command, but also for resolving unexpected conflicts).
Options
Every command accepts the global options.
|
read history edits from the specified file |
|
|
|
continue an edit already in progress |
|
edit remaining actions list |
|
|
|
don't strip old nodes after edit is complete |
|
abort an edit in progress |
|
|
|
changesets not found in destination |
|
|
force outgoing even for unrelated repositories |
|
|
first revision to be edited |
|
|
display with template |
|
operate on patch repository |
Options marked [+] can be repeated.