D6464: commit: respect --no-edit in combination with --amend
spectral (Kyle Lippincott)
phabricator at mercurial-scm.org
Thu May 30 21:17:38 UTC 2019
spectral created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6464
AFFECTED FILES
mercurial/cmdutil.py
tests/test-commit-amend.t
CHANGE DETAILS
diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t
--- a/tests/test-commit-amend.t
+++ b/tests/test-commit-amend.t
@@ -943,17 +943,7 @@
(We need a file change here since we won't have a message change)
$ cp foo foo.orig
$ echo hi >> foo
-FIXME: This shouldn't start the editor.
$ HGEDITOR=cat hg commit --amend --no-edit
- editor should be suppressed
-
-
- HG: Enter commit message. Lines beginning with 'HG:' are removed.
- HG: Leave message empty to abort commit.
- HG: --
- HG: user: test
- HG: branch 'silliness'
- HG: added foo
$ hg parents --template "{desc}\n"
editor should be suppressed
$ hg status -mar
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2583,12 +2583,18 @@
message = logmessage(ui, opts)
editform = mergeeditform(old, 'commit.amend')
- editor = getcommiteditor(editform=editform,
- **pycompat.strkwargs(opts))
if not message:
- editor = getcommiteditor(edit=True, editform=editform)
message = old.description()
+ # Default if message isn't provided and --edit is not passed is to
+ # invoke editor, but allow --no-edit. If somehow we don't have any
+ # description, let's always start the editor.
+ doedit = not message or opts.get('edit') in [True, None]
+ else:
+ # Default if message is provided is to not invoke editor, but allow
+ # --edit.
+ doedit = opts.get('edit') is True
+ editor = getcommiteditor(edit=doedit, editform=editform)
pureextra = extra.copy()
extra['amend_source'] = old.hex()
To: spectral, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list