diff --git a/hgext/transplant.py b/hgext/transplant.py --- a/hgext/transplant.py +++ b/hgext/transplant.py @@ -734,6 +734,15 @@ if cleanupfn: cleanupfn() +def continuetransplant(ui, repo): + """logic to resume an interrupted transplant using + 'hg continue'""" + with repo.wlock(): + opts = {} + tp = transplanter(ui, repo, opts) + tp.resume(repo, repo, opts) + return + revsetpredicate = registrar.revsetpredicate() @revsetpredicate('transplanted([set])') @@ -760,6 +769,7 @@ def extsetup(ui): statemod.addunfinished ( 'transplant', fname='transplant/journal', clearable=True, + continuefunc=continuetransplant, statushint=_('To continue: hg transplant --continue\n' 'To abort: hg update'), cmdhint=_("use 'hg transplant --continue' or 'hg update' to abort") diff --git a/tests/test-transplant.t b/tests/test-transplant.t --- a/tests/test-transplant.t +++ b/tests/test-transplant.t @@ -1,8 +1,16 @@ +#testcases commandmode continueflag $ cat <> $HGRCPATH > [extensions] > transplant= > EOF +#if continueflag + $ cat >> $HGRCPATH < [alias] + > continue = transplant --continue + > EOF +#endif + $ hg init t $ cd t $ hg transplant @@ -424,8 +432,9 @@ updated to "e8643552fde5: foobar" 1 other heads for branch "default" $ rm added - $ hg transplant --continue - abort: no transplant to continue + $ hg continue + abort: no transplant to continue (continueflag !) + abort: no operation in progress (no-continueflag !) [255] $ hg transplant 1 applying 46ae92138f3c @@ -492,7 +501,7 @@ # To abort: hg update $ echo fixed > baz - $ hg transplant --continue + $ hg continue 9d6d6b5a8275 transplanted as d80c49962290 applying 1dab759070cf 1dab759070cf transplanted to aa0ffe6bd5ae @@ -881,7 +890,7 @@ [255] $ hg status ? b.rej - $ hg transplant --continue + $ hg continue 645035761929 skipped due to empty diff $ cd ..