# HG changeset patch # User Matt Mackall # Date 2013-07-25 04:51:44 # Node ID 11664641fbad2194698ed5e9f82f358ebdb1badd # Parent e5a5790a318589ee865e02624368c81e978135ec histedit: add checkunfinished support (issue3955) The tests contain a couple corner cases where workarounds are now required. Strictly speaking, these are behavior regressions, but of an extremely obscure and marginal sort. Commits or updates in the middle of a histedit would have almost always been fairly serious user error. diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -512,6 +512,7 @@ def histedit(ui, repo, *freeargs, **opts os.unlink(os.path.join(repo.path, 'histedit-state')) return else: + cmdutil.checkunfinished(repo) cmdutil.bailifchanged(repo) topmost, empty = repo.dirstate.parents() @@ -872,3 +873,6 @@ def summaryhook(ui, repo): def extsetup(ui): cmdutil.summaryhooks.add('histedit', summaryhook) + cmdutil.unfinishedstates.append( + ['histedit-state', False, _('histedit in progress'), + _("use 'hg histedit --continue' or 'hg histedit --abort'")]) diff --git a/tests/test-histedit-edit.t b/tests/test-histedit-edit.t --- a/tests/test-histedit-edit.t +++ b/tests/test-histedit-edit.t @@ -69,16 +69,12 @@ Go at a random point and try to continue $ hg id -n 3+ $ hg up 0 - 0 files updated, 0 files merged, 3 files removed, 0 files unresolved - $ HGEDITOR='echo foobaz > ' hg histedit --continue - abort: 055a42cdd887 is not an ancestor of working directory - (update to 055a42cdd887 or descendant and run "hg histedit --continue" again) + abort: histedit in progress + (use 'hg histedit --continue' or 'hg histedit --abort') [255] - $ hg up 3 - 3 files updated, 0 files merged, 0 files removed, 0 files unresolved -commit, then edit the revision - $ hg ci -m 'wat' +commit, then edit the revision (temporarily disable histedit to allow commit) + $ hg ci -m 'wat' --config 'extensions.histedit=!' created new head $ echo a > e $ HGEDITOR='echo foobaz > ' hg histedit --continue 2>&1 | fixbundle diff --git a/tests/test-histedit-fold.t b/tests/test-histedit-fold.t --- a/tests/test-histedit-fold.t +++ b/tests/test-histedit-fold.t @@ -214,7 +214,7 @@ dropped revision. > 5 > EOF $ hg resolve --mark file - $ hg commit -m '+5.2' + $ hg commit -m '+5.2' --config 'extensions.histedit=!' created new head $ echo 6 >> file $ HGEDITOR=cat hg histedit --continue