amend: force editor only if old message is reused (issue3698) stable
authorPierre-Yves David <pierre-yves.david@logilab.fr>
Tue, 13 Nov 2012 08:41:56 -0800
branchstable
changeset 17924 45bd0cd7ca04
parent 17907 ce2c709a8e90
child 17931 35ba170c0f82
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.
mercurial/cmdutil.py
tests/test-commit-amend.t
--- 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