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
--- 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)
--- 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 <<EOF
+ > [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 !)
--- 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 <<EOF
+ > [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
--- 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 <<EOF
+ > [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