[PATCH v3] commit: block amend while histedit is in progress (issue4800)
Augie Fackler
raf at durin42.com
Mon Mar 7 21:08:29 EST 2016
On Wed, Mar 02, 2016 at 04:55:16PM -0600, timeless wrote:
> # HG changeset patch
> # User timeless <timeless at mozdev.org>
> # Date 1455435350 0
> # Sun Feb 14 07:35:50 2016 +0000
> # Node ID 31b049d11a8f1ba111eb91d0c41a13a8f3b1c253
> # Parent c7f89ad87baef87f00c507545dfd4cc824bc3131
> commit: block amend while histedit is in progress (issue4800)
queued this, thanks
>
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -1682,6 +1682,15 @@
> if not allowunstable and old.children():
> raise error.Abort(_('cannot amend changeset with children'))
>
> + # Currently histedit gets confused if an amend happens while histedit
> + # is in progress. Since we have a checkunfinished command, we are
> + # temporarily honoring it.
> + #
> + # Note: eventually this guard will be removed. Please do not expect
> + # this behavior to remain.
> + if not obsolete.isenabled(repo, obsolete.createmarkersopt):
> + cmdutil.checkunfinished(repo)
> +
> # commitfunc is used only for temporary amend commit by cmdutil.amend
> def commitfunc(ui, repo, message, match, opts):
> return repo.commit(message,
> 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
> @@ -450,3 +450,46 @@
> > pick 6f2f0241f119
> > pick 8cde254db839
> > EOF
> +
> +commit --amend should abort if histedit is in progress
> +(issue4800) and markers are not being created.
> +Eventually, histedit could perhaps look at `source` extra,
> +in which case this test should be revisited.
> +
> + $ hg -q up 8cde254db839
> + $ hg histedit 6f2f0241f119 --commands - <<EOF
> + > pick 8cde254db839
> + > edit 6f2f0241f119
> + > EOF
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + merging foo
> + warning: conflicts while merging foo! (edit, then use 'hg resolve --mark')
> + Fix up the change (pick 8cde254db839)
> + (hg histedit --continue to resume)
> + [1]
> + $ hg resolve -m --all
> + (no more unresolved files)
> + continue: hg histedit --continue
> + $ hg histedit --cont
> + merging foo
> + warning: conflicts while merging foo! (edit, then use 'hg resolve --mark')
> + Editing (6f2f0241f119), you may commit or record as needed now.
> + (hg histedit --continue to resume)
> + [1]
> + $ hg resolve -m --all
> + (no more unresolved files)
> + continue: hg histedit --continue
> + $ hg commit --amend -m 'reject this fold'
> + abort: histedit in progress
> + (use 'hg histedit --continue' or 'hg histedit --abort')
> + [255]
> +
> +With markers enabled, histedit does not get confused, and
> +amend should not be blocked by the ongoing histedit.
> +
> + $ cat >>$HGRCPATH <<EOF
> + > [experimental]
> + > evolution=createmarkers,allowunstable
> + > EOF
> + $ hg commit --amend -m 'allow this fold'
> + $ hg histedit --continue
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list