# HG changeset patch # User Taapas Agrawal # Date 1561662352 -19800 # Node ID db5560c07a281ef1df625b1e9791a49a15e80861 # Parent b9bc47211cf5d5ec61f7683c9d09edc5cd37fdb3 abort: added support for histedit This patch adds the support for `histedit` in `hg abort` plan. As seperate `hgaborthistedit()` function is created to handle independent calls for abortion of `histedit`. This function is then registered as `abortfunc` for state detection API. hg abort in case of `histedit` also supports ` history-editing-backup` config option. Results are shown as tests. Differential Revision: https://phab.mercurial-scm.org/D6582 diff -r b9bc47211cf5 -r db5560c07a28 hgext/histedit.py --- a/hgext/histedit.py Sun Jun 23 23:11:35 2019 +0530 +++ b/hgext/histedit.py Fri Jun 28 00:35:52 2019 +0530 @@ -1919,6 +1919,14 @@ finally: state.clear() +def hgaborthistedit(ui, repo): + state = histeditstate(repo) + nobackup = not ui.configbool('rewrite', 'backup-bundle') + with repo.wlock() as wlock, repo.lock() as lock: + state.wlock = wlock + state.lock = lock + _aborthistedit(ui, repo, state, nobackup=nobackup) + def _edithisteditplan(ui, repo, state, rules): state.read() if not rules: @@ -2314,5 +2322,5 @@ def extsetup(ui): cmdutil.summaryhooks.add('histedit', summaryhook) statemod.addunfinished('histedit', fname='histedit-state', allowcommit=True, - continueflag=True) + continueflag=True, abortfunc=hgaborthistedit) diff -r b9bc47211cf5 -r db5560c07a28 tests/test-histedit-arguments.t --- a/tests/test-histedit-arguments.t Sun Jun 23 23:11:35 2019 +0530 +++ b/tests/test-histedit-arguments.t Fri Jun 28 00:35:52 2019 +0530 @@ -1,3 +1,12 @@ +#testcases abortcommand abortflag + +#if abortflag + $ cat >> $HGRCPATH < [alias] + > abort = histedit --abort + > EOF +#endif + Test argument handling and various data parsing ================================================== @@ -47,8 +56,9 @@ $ hg histedit --continue abort: no histedit in progress [255] - $ hg histedit --abort - abort: no histedit in progress + $ hg abort + abort: no histedit in progress (abortflag !) + abort: no operation in progress (abortcommand !) [255] Run a dummy edit to make sure we get tip^^ correctly via revsingle. @@ -358,7 +368,7 @@ Corrupt histedit state file $ sed 's/8fda0c726bf2/123456789012/' .hg/histedit-state > ../corrupt-histedit $ mv ../corrupt-histedit .hg/histedit-state - $ hg histedit --abort + $ hg abort warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up abort: $TESTTMP/foo/.hg/strip-backup/*-histedit.hg: $ENOENT$ (glob) (windows !) abort: $ENOENT$: '$TESTTMP/foo/.hg/strip-backup/*-histedit.hg' (glob) (no-windows !) diff -r b9bc47211cf5 -r db5560c07a28 tests/test-histedit-no-backup.t --- a/tests/test-histedit-no-backup.t Sun Jun 23 23:11:35 2019 +0530 +++ b/tests/test-histedit-no-backup.t Fri Jun 28 00:35:52 2019 +0530 @@ -1,3 +1,12 @@ +#testcases abortcommand abortflag + +#if abortflag + $ cat >> $HGRCPATH < [alias] + > abort = histedit --abort + > EOF +#endif + $ . "$TESTDIR/histedit-helpers.sh" Enable extension used by this test @@ -44,7 +53,7 @@ Editing (7d5187087c79), you may commit or record as needed now. (hg histedit --continue to resume) [1] - $ hg histedit --abort + $ hg abort 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/foo/.hg/strip-backup/1d8f701c7b35-cf7be322-backup.hg saved backup bundle to $TESTTMP/foo/.hg/strip-backup/5c0056670bce-b54b65d0-backup.hg @@ -66,5 +75,6 @@ Editing (7d5187087c79), you may commit or record as needed now. (hg histedit --continue to resume) [1] - $ hg histedit --abort + + $ hg abort 1 files updated, 0 files merged, 0 files removed, 0 files unresolved diff -r b9bc47211cf5 -r db5560c07a28 tests/test-histedit-obsolete.t --- a/tests/test-histedit-obsolete.t Sun Jun 23 23:11:35 2019 +0530 +++ b/tests/test-histedit-obsolete.t Fri Jun 28 00:35:52 2019 +0530 @@ -1,3 +1,12 @@ +#testcases abortcommand abortflag + +#if abortflag + $ cat >> $HGRCPATH < [alias] + > abort = histedit --abort + > EOF +#endif + $ . "$TESTDIR/histedit-helpers.sh" Enable obsolete @@ -522,7 +531,13 @@ (hg histedit --continue to resume) [1] - $ hg histedit --abort +#if abortcommand +when in dry-run mode + $ hg abort --dry-run + histedit in progress, will be aborted +#endif + + $ hg abort 1 files updated, 0 files merged, 0 files removed, 0 files unresolved saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg