[PATCH 4 of 5] histedit: suggest "histedit --abort" for inconsistent histedit status

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Tue Aug 27 02:23:51 CDT 2013


At Mon, 26 Aug 2013 09:48:11 -0400,
Augie Fackler wrote:
> 
> On Mon, Aug 26, 2013 at 04:41:51PM +0900, FUJIWARA Katsunori wrote:
> > # 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.
> 
> Not sure how I feel about this one. This changes the suggestion from
> "finish your work" to "throw away any work you've done."

Yes, it is intentional to change the suggestion from "finish your
work" to "throw away any work you've done.", because there is no
(ordinary) way to continue histedit in this case with Mercurial 2.7 or
later.

IMHO, adding new code path (or option ?) to allow such continuation
seems to have less meaning, because this histedit should be forgotten
one in almost all cases.

Or should I suggest "use Mercurial earlier than 2.7 to continue this
histedit" or "backup .hg/histedit-state, update working directory,
restore histedit-state and continue" ?

> >
> > 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
> >  ---------------------------------------
> >
> > _______________________________________________
> > Mercurial-devel mailing list
> > Mercurial-devel at selenic.com
> > http://selenic.com/mailman/listinfo/mercurial-devel
> 

----------------------------------------------------------------------
[FUJIWARA Katsunori]                             foozy at lares.dti.ne.jp


More information about the Mercurial-devel mailing list