abort: added logic for of hg abort

Authored by taapas1128.


abort: added logic for of hg abort

This is part of GSoC19 project `Implement abort and
continue commands`. This patch is part of the abort plan.

This adds the basic logic for hg abort. This command
aborts an multistep operation like graft, histedit, rebase,
merge and unshelve if they are in an unfinished state.

The first part of the logic is determining the unfinished
operation from the state detection API under statemod.
This API is extended to support hg abort by adding a method
to register the abort logic as a function (here abortfunc).

Once the unfinished operation is determined the registered
logic is used to abort the command. The benefit of this kind
of framework is that any new extension developed can support
hg abort by registering the command and logic under
statedetection API.

hg abort currently supports --dry-run/-n flag only.
It is used to dry run hg abort

Further patches sequentially add support for graft, rebase,
unshelve, histedit and merge.

Differential Revision: https://phab.mercurial-scm.org/D6566


taapas1128Sun, Jun 23, 11:28 AM
Differential Revision
D6566: abort: added logic for of hg abort
rHGeb7bd7d64a9d: merge with stable