Patchwork D5540: histedit: fix --continue and --abort when curses is enabled

login
register
mail settings
Submitter phabricator
Date Jan. 10, 2019, 3:24 p.m.
Message ID <8303593890ddf31db22f3cfd31101d4e@localhost.localdomain>
Download mbox | patch
Permalink /patch/37622/
State Not Applicable
Headers show

Comments

phabricator - Jan. 10, 2019, 3:24 p.m.
durin42 updated this revision to Diff 13136.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5540?vs=13112&id=13136

REVISION DETAIL
  https://phab.mercurial-scm.org/D5540

AFFECTED FILES
  hgext/histedit.py
  tests/test-histedit-non-commute.t

CHANGE DETAILS




To: durin42, #hg-reviewers
Cc: martinvonz, mercurial-devel

Patch

diff --git a/tests/test-histedit-non-commute.t b/tests/test-histedit-non-commute.t
--- a/tests/test-histedit-non-commute.t
+++ b/tests/test-histedit-non-commute.t
@@ -161,7 +161,10 @@ 
   warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
   Fix up the change (pick 7b4e2f4b7bcd)
   (hg histedit --continue to resume)
-  $ hg histedit --continue 2>&1 | fixbundle
+We forcibly enable curses here so we can verify that continuing works
+with curses enabled.
+  $ hg histedit --continue --config ui.interactive=true \
+  >   --config ui.interface=curses 2>&1 | fixbundle
   abort: unresolved merge conflicts (see 'hg help resolve')
 
 This failure is caused by 7b4e2f4b7bcd "e" not rebasing the non commutative
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -1599,7 +1599,10 @@ 
     for intentional "edit" command, but also for resolving unexpected
     conflicts).
     """
-    if ui.interface('histedit') == 'curses':
+    # kludge: _chistedit only works for starting an edit, not aborting
+    # or continuing, so fall back to regular _texthistedit for those
+    # operations.
+    if ui.interface('histedit') == 'curses' and  _getgoal(opts) == goalnew:
         return _chistedit(ui, repo, *freeargs, **opts)
     return _texthistedit(ui, repo, *freeargs, **opts)