diff tests/test-histedit-arguments.t @ 19847:45c3086880c7 stable

histedit: suggest "histedit --abort" for inconsistent histedit state Mercurial earlier than 2.7 allows users to do anything other than starting new histedit, even though current histedit is not finished or aborted yet. So, unfinished (and maybe inconsistent now) histedit states may be left and forgotten in repositories. Before this patch, histedit extension shows the message below, when it detects such inconsistent state: abort: REV is not an ancestor of working directory (update to REV or descendant and run "hg histedit --continue" again) But this message is incorrect, unless old Mercurial is re-installed, because Mercurial 2.7 or later disallows users to update the working directory to another revision. This patch changes the hint message to suggest "hg histedit --abort".
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Tue, 01 Oct 2013 00:35:07 +0900
parents 1163ff06ce89
children 23dc77874191
line wrap: on
line diff
--- a/tests/test-histedit-arguments.t	Mon Sep 30 14:23:14 2013 +0200
+++ b/tests/test-histedit-arguments.t	Tue Oct 01 00:35:07 2013 +0900
@@ -70,6 +70,35 @@
   [255]
   $ hg up --quiet
 
+Run on a revision not descendants of the initial parent
+--------------------------------------------------------------------
+
+Test the message shown for inconsistent histedit state, which may be
+created (and forgotten) by Mercurial earlier than 2.7. This emulates
+Mercurial earlier than 2.7 by renaming ".hg/histedit-state"
+temporarily.
+
+  $ HGEDITOR=cat hg histedit -r 4 --commands - << EOF
+  > edit 08d98a8350f3 4 five
+  > EOF
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  reverting alpha
+  Make changes as needed, you may commit or record as needed now.
+  When you are finished, run hg histedit --continue to resume.
+  [1]
+
+  $ mv .hg/histedit-state .hg/histedit-state.back
+  $ hg update --quiet --clean 2
+  $ mv .hg/histedit-state.back .hg/histedit-state
+
+  $ hg histedit --continue
+  abort: c8e68270e35a is not an ancestor of working directory
+  (use "histedit --abort" to clear broken state)
+  [255]
+
+  $ hg histedit --abort
+  $ hg update --quiet --clean
+
 Test that missing revisions are detected
 ---------------------------------------