diff -r 2f760da140ee -r 3c16b9c0b099 mercurial/commands.py --- a/mercurial/commands.py Wed Jul 17 18:15:51 2019 +0200 +++ b/mercurial/commands.py Mon Jul 15 22:23:31 2019 +0530 @@ -1893,6 +1893,32 @@ return 0 return 1 +@command('continue', + dryrunopts, helpcategory=command.CATEGORY_CHANGE_MANAGEMENT, + helpbasic=True) +def continuecmd(ui, repo, **opts): + """resumes an interrupted operation (EXPERIMENTAL) + + Finishes a multistep operation like graft, histedit, rebase, merge, + and unshelve if they are in an interrupted state. + + use --dry-run/-n to dry run the command. + A new operation can be added to this by registering the operation and + continue logic in the unfinishedstates list under statemod. + """ + dryrun = opts.get(r'dry_run') + contstate = cmdutil.getunfinishedstate(repo) + if not contstate: + raise error.Abort(_('no operation in progress')) + if not contstate.continuefunc: + raise error.Abort((_("%s in progress but does not support " + "'hg continue'") % (contstate._opname)), + hint=contstate.continuemsg()) + if dryrun: + ui.status(_('%s in progress, will be resumed\n') % (contstate._opname)) + return + return contstate.continuefunc(ui, repo) + @command('copy|cp', [('A', 'after', None, _('record a copy that has already occurred')), ('f', 'force', None, _('forcibly copy over an existing managed file')),