[PATCH v2] commit: block amend while histedit is in progress (issue4800)
timeless
timeless at mozdev.org
Fri Feb 26 19:02:18 UTC 2016
# HG changeset patch
# User timeless <timeless at mozdev.org>
# Date 1455435350 0
# Sun Feb 14 07:35:50 2016 +0000
# Node ID 795e4acf6b27e8b1bff19bb1d479f5229a29bfcd
# Parent 41dcd754526612c43b9695df8851557c851828ef
commit: block amend while histedit is in progress (issue4800)
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.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1681,6 +1681,8 @@
allowunstable = obsolete.isenabled(repo, obsolete.allowunstableopt)
if not allowunstable and old.children():
raise error.Abort(_('cannot amend changeset with children'))
+ 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):
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,42 @@
> 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]
+ $ cat >>$HGRCPATH <<EOF
+ > [experimental]
+ > evolution=createmarkers,allowunstable
+ > EOF
+ $ hg commit --amend -m 'allow this fold'
+ $ hg histedit --continue
More information about the Mercurial-devel
mailing list