diff --git a/hgext/transplant.py b/hgext/transplant.py --- a/hgext/transplant.py +++ b/hgext/transplant.py @@ -771,6 +771,14 @@ tp.resume(repo, repo, opts) return +def aborttransplant(ui, repo): + """logic to abort a transplnat in progress using + 'hg abort'""" + with repo.wlock(): + tp = transplanter(ui, repo, {}) + tp.abort(ui, repo) + return + revsetpredicate = registrar.revsetpredicate() @revsetpredicate('transplanted([set])') @@ -797,7 +805,7 @@ def extsetup(ui): statemod.addunfinished ( 'transplant', fname='transplant/journal', clearable=True, - continuefunc=continuetransplant, + continuefunc=continuetransplant, abortfunc=aborttransplant, statushint=_('To continue: hg transplant --continue\n' 'To abort: hg transplant --abort'), cmdhint=_("use 'hg transplant --continue' or 'hg transplant --abort' " diff --git a/tests/test-transplant.t b/tests/test-transplant.t --- a/tests/test-transplant.t +++ b/tests/test-transplant.t @@ -1,10 +1,17 @@ -#testcases commandmode continueflag +#testcases commandmode abortflag continueflag $ cat <> $HGRCPATH > [extensions] > transplant= > graphlog= > EOF +#if abortflag + $ cat >> $HGRCPATH < [alias] + > abort = transplant --abort + > EOF +#endif + #if continueflag $ cat >> $HGRCPATH < [alias] @@ -460,7 +467,7 @@ abort: fix up the working directory and run hg transplant --continue [255] - $ hg transplant --abort + $ hg abort transplant aborted working directory is now at e8643552fde5 Repo log after abort @@ -514,8 +521,9 @@ abort: no transplant to continue (continueflag !) abort: no operation in progress (no-continueflag !) [255] - $ hg transplant --abort - abort: no transplant to abort + $ hg abort + abort: no transplant to abort (abortflag !) + abort: no operation in progress (no-abortflag !) [255] $ hg transplant 1 applying 46ae92138f3c