[PATCH 4 of 5] histedit: suggest "histedit --abort" for inconsistent histedit status
FUJIWARA Katsunori
foozy at lares.dti.ne.jp
Mon Aug 26 07:41:51 UTC 2013
# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1377501081 -32400
# Mon Aug 26 16:11:21 2013 +0900
# Node ID 530564f737e2bf5111f769f944f6d0f7b6942def
# Parent c0dc67257c631ea0b709b189271bfd022917c022
histedit: suggest "histedit --abort" for inconsistent histedit status
This patch changes the hint message for inconsistent histedit status,
because Mercurial 2.7 or later prevents from updating the working
directory before "histedit --abort", if histedit is in progress.
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -628,8 +628,8 @@
# `parentctxnode` should match but no result. This means that
# currentnode is not a descendant from parentctxnode.
msg = _('%s is not an ancestor of working directory')
- hint = _('update to %s or descendant and run "hg histedit '
- '--continue" again') % parentctx
+ hint = _('this inconsistent histedit should be aborted by '
+ '"histedit --abort"')
raise util.Abort(msg % parentctx, hint=hint)
newchildren.pop(0) # remove parentctxnode
# Commit dirty working directory if necessary
diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t
--- a/tests/test-histedit-arguments.t
+++ b/tests/test-histedit-arguments.t
@@ -70,6 +70,37 @@
[255]
$ hg up --quiet
+Run on a revision not descendants of the initial parent
+--------------------------------------------------------------------
+
+this should occur only when there is (maybe forgotten) histedit-state
+left by hg earlier than 2.7, because 2.7 or later prevents users from
+updating without aborting.
+
+ $ 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]
+
+this emulates "hg update" before "hg histedit --abort" with hg earlier
+than 2.7
+
+ $ 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
+ (this inconsistent histedit should be aborted by "histedit --abort")
+ [255]
+
+ $ hg histedit --abort
+ $ hg update --quiet --clean
+
Test that missing revisions are detected
---------------------------------------
More information about the Mercurial-devel
mailing list