amend: force editor only if old message is reused (
issue3698)
This regression was added by
9732473aa24b. It triggered the editor even if
--message or --logfile were provided.
--- a/mercurial/cmdutil.py Fri Nov 02 20:47:03 2012 +0100
+++ b/mercurial/cmdutil.py Tue Nov 13 08:41:56 2012 -0800
@@ -1715,7 +1715,9 @@
user = opts.get('user') or old.user()
date = opts.get('date') or old.date()
+ editmsg = False
if not message:
+ editmsg = True
message = old.description()
pureextra = extra.copy()
@@ -1729,7 +1731,8 @@
user=user,
date=date,
extra=extra)
- new._text = commitforceeditor(repo, new, [])
+ if editmsg:
+ new._text = commitforceeditor(repo, new, [])
newdesc = changelog.stripdesc(new.description())
if ((not node)
--- a/tests/test-commit-amend.t Fri Nov 02 20:47:03 2012 +0100
+++ b/tests/test-commit-amend.t Tue Nov 13 08:41:56 2012 -0800
@@ -29,9 +29,10 @@
> EOF
Amending changeset with changes in working dir:
+(and check that --message does not trigger an editor)
$ echo a >> a
- $ hg ci --amend -m 'amend base1'
+ $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit --amend -m 'amend base1'
pretxncommit 43f1ba15f28a50abf0aae529cf8a16bfced7b149
43f1ba15f28a tip
saved backup bundle to $TESTTMP/.hg/strip-backup/489edb5b847d-amend-backup.hg (glob)
@@ -66,10 +67,11 @@
Remove file that was added in amended commit:
(and test logfile option)
+(and test that logfile option do not trigger an editor)
$ hg rm b
$ echo 'amend base1 remove new file' > ../logfile
- $ hg ci --amend -l ../logfile
+ $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg ci --amend --logfile ../logfile
saved backup bundle to $TESTTMP/.hg/strip-backup/b8e3cb2b3882-amend-backup.hg (glob)
$ hg cat b