From patchwork Mon Aug 26 07:41:51 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4, of, 5] histedit: suggest "histedit --abort" for inconsistent histedit status From: Katsunori FUJIWARA X-Patchwork-Id: 2260 Message-Id: <530564f737e2bf5111f7.1377502911@feefifofum> To: mercurial-devel@selenic.com Date: Mon, 26 Aug 2013 16:41:51 +0900 # HG changeset patch # User FUJIWARA Katsunori # 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 ---------------------------------------