From patchwork Fri Aug 15 14:09:20 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2, of, 8] commit: change "editform" to distinguish merge commits from other From: Katsunori FUJIWARA X-Patchwork-Id: 5415 Message-Id: To: mercurial-devel@selenic.com Date: Fri, 15 Aug 2014 23:09:20 +0900 # HG changeset patch # User FUJIWARA Katsunori # Date 1408111553 -32400 # Fri Aug 15 23:05:53 2014 +0900 # Node ID aee1879e03e5ef361a648cd98804cc635f21e274 # Parent 27fa707554466289f41d2c3a08544bbce55e2720 commit: change "editform" to distinguish merge commits from other "editform" argument for "getcommiteditor" is decided according to the format below: COMMAND[.ROUTE] - COMMAND: name of command - ROUTE: name of route, if there are two or more routes in COMMAND This patch uses "normal.normal" and "normal.merge" as ROUTE of "editform" instead of "normal", to distinguish merge commits from other in "hg commit" without "--amend" case. This patch assumes "editform" variations for "hg commit" below: commit.normal.normal commit.normal.merge commit.amend.normal commit.amend.merge diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1448,7 +1448,10 @@ # Propagate to subrepos baseui.setconfig('phases', 'new-commit', 'secret', 'commit') - editform = 'commit.normal' + if 1 < len(repo[None].parents()): + editform = 'commit.normal.merge' + else: + editform = 'commit.normal.normal' editor = cmdutil.getcommiteditor(editform=editform, **opts) return repo.commit(message, opts.get('user'), opts.get('date'), match, diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt --- a/mercurial/help/config.txt +++ b/mercurial/help/config.txt @@ -395,7 +395,8 @@ - ``changeset.backout`` for :hg:`backout` - ``changeset.commit.amend`` for :hg:`commit --amend` -- ``changeset.commit.normal`` for :hg:`commit` without ``--amend`` +- ``changeset.commit.normal.merge`` for :hg:`commit` on merges +- ``changeset.commit.normal.normal`` for :hg:`commit` on other - ``changeset.fetch`` for :hg:`fetch` (impling merge commit) - ``changeset.gpg.sign`` for :hg:`sign` - ``changeset.graft`` for :hg:`graft` @@ -422,7 +423,7 @@ At the external editor invocation for committing, corresponding dot-separated list of names without ``changeset.`` prefix -(e.g. ``commit.normal``) is in ``HGEDITFORM`` environment variable. +(e.g. ``commit.normal.normal``) is in ``HGEDITFORM`` environment variable. In this section, items other than ``changeset`` can be referred from others. For example, the configuration to list committed files up diff --git a/tests/test-commit.t b/tests/test-commit.t --- a/tests/test-commit.t +++ b/tests/test-commit.t @@ -9,7 +9,7 @@ > true > EOF $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg commit -m "" - HGEDITFORM=commit.normal + HGEDITFORM=commit.normal.normal abort: empty commit message [255] $ hg commit -d '0 0' -m commit-1 @@ -282,7 +282,8 @@ should succeed - $ hg ci -mmerge + $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg ci -mmerge --edit + HGEDITFORM=commit.normal.merge $ cd ..