diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -1923,6 +1923,12 @@ obsoleteextinctsuccessors, ) +def abortrebase(ui, repo, **opts): + with repo.wlock(), repo.lock(): + rbsrt = rebaseruntime(repo, ui) + rbsrt._prepareabortorcontinue(isabort=True, backup=True, + suppwarns=False) + def summaryhook(ui, repo): if not repo.vfs.exists('rebasestate'): return @@ -1951,4 +1957,4 @@ _("specify merge tool for rebase"))) cmdutil.summaryhooks.add('rebase', summaryhook) statemod.addunfinished('rebase', fname='rebasestate', stopflag=True, - continueflag=True) + continueflag=True, abortfunc=abortrebase) diff --git a/tests/test-rebase-abort.t b/tests/test-rebase-abort.t --- a/tests/test-rebase-abort.t +++ b/tests/test-rebase-abort.t @@ -1,3 +1,5 @@ +#testcases abortcommand abortflag + $ cat >> $HGRCPATH < [extensions] > rebase= @@ -9,6 +11,12 @@ > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n" > EOF +#if abortflag + $ cat >> $HGRCPATH < [alias] + > abort = rebase --abort + > EOF +#endif $ hg init a $ cd a @@ -114,7 +122,13 @@ Abort (should clear out unsupported merge state): - $ hg rebase --abort +#if abortcommand +when in dry-run mode + $ hg abort --dry-run + rebase in progress, will be aborted +#endif + + $ hg abort saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg rebase aborted $ hg debugmergestate @@ -154,7 +168,7 @@ [255] $ hg summary | grep '^rebase: ' rebase: (use "hg rebase --abort" to clear broken state) - $ hg rebase --abort + $ hg abort rebase aborted (no revision is removed, only broken state is cleared) $ cd .. @@ -271,7 +285,7 @@ warning: conflicts while merging c! (edit, then use 'hg resolve --mark') unresolved conflicts (see hg resolve, then hg rebase --continue) [1] - $ hg rebase --abort + $ hg abort rebase aborted $ hg log -G --template "{rev} {desc} {bookmarks}" @ 3 C foo @@ -324,7 +338,7 @@ $ cat a new - $ hg rebase --abort + $ hg abort rebase aborted $ cat a new @@ -405,7 +419,7 @@ (use 'hg rebase --continue' or 'hg rebase --abort') [255] - $ hg rebase --abort + $ hg abort saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/3d8812cf300d-93041a90-backup.hg rebase aborted $ hg log -G --template "{rev} {desc} {bookmarks}" @@ -456,7 +470,7 @@ rebasing 2:e4ea5cdc9789 "conflicting 1" unresolved conflicts (see hg resolve, then hg rebase --continue) [1] - $ hg rebase --abort + $ hg abort rebase aborted $ hg summary parent: 3:b16646383533 tip @@ -497,7 +511,7 @@ warning: conflicts while merging root! (edit, then use 'hg resolve --mark') unresolved conflicts (see hg resolve, then hg rebase --continue) [1] - $ hg rebase --abort - rebase aborted - $ cd .. - + $ hg abort + rebase aborted + $ cd .. +