diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -1923,6 +1923,11 @@ def _computeobsoletenotrebased(repo, reb obsoleteextinctsuccessors, ) +def abortrebase(ui, repo): + with repo.wlock(), repo.lock(): + rbsrt = rebaseruntime(repo, ui) + rbsrt._prepareabortorcontinue(isabort=True) + def summaryhook(ui, repo): if not repo.vfs.exists('rebasestate'): return @@ -1951,4 +1956,4 @@ def uisetup(ui): _("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 @@ Insert unsupported mandatory merge recor 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 @@ earlier than 2.7 by renaming ".hg/rebase [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 @@ rebase abort should not leave working co 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 @@ user has somehow managed to update to a $ cat a new - $ hg rebase --abort + $ hg abort rebase aborted $ cat a new @@ -405,7 +419,7 @@ New operations are blocked with the corr (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 @@ during a rebase (issue4661) 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 @@ commit will cause merge conflict on reba warning: conflicts while merging root! (edit, then use 'hg resolve --mark') unresolved conflicts (see hg resolve, then hg rebase --continue) [1] - $ hg rebase --abort + $ hg abort rebase aborted $ cd ..