Mercurial > hg
changeset 22252:de783f2403c4
transplant: change "editform" to distinguish merge commits from others
"editform" argument for "getcommiteditor" is decided according to the
format below:
EXTENSION[.COMMAND][.ROUTE]
- EXTENSION: name of extension
- COMMAND: name of command, if there are two or more commands in EXTENSION
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch newly adds "normal" and "merge" as ROUTE, to distinguish
merge commits from other.
This patch adds 4 test patterns to test combination of "merge"(x2) and
"--continue"(x2).
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 16 Aug 2014 10:43:59 +0900 |
parents | d0d3e5c6eb3c |
children | 4cdc3c333806 |
files | hgext/transplant.py mercurial/help/config.txt tests/test-transplant.t |
diffstat | 3 files changed, 38 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/transplant.py Sat Aug 16 10:43:59 2014 +0900 +++ b/hgext/transplant.py Sat Aug 16 10:43:59 2014 +0900 @@ -86,7 +86,10 @@ self.opener = scmutil.opener(self.path) self.transplants = transplants(self.path, 'transplants', opener=self.opener) - self.editor = cmdutil.getcommiteditor(editform='transplant', **opts) + def getcommiteditor(): + editform = cmdutil.mergeeditform(repo[None], 'transplant') + return cmdutil.getcommiteditor(editform=editform, **opts) + self.getcommiteditor = getcommiteditor def applied(self, repo, node, parent): '''returns True if a node is already an ancestor of parent @@ -286,7 +289,7 @@ m = match.exact(repo.root, '', files) n = repo.commit(message, user, date, extra=extra, match=m, - editor=self.editor) + editor=self.getcommiteditor()) if not n: self.ui.warn(_('skipping emptied changeset %s\n') % short(node)) return None @@ -342,7 +345,7 @@ if merge: repo.setparents(p1, parents[1]) n = repo.commit(message, user, date, extra=extra, - editor=self.editor) + editor=self.getcommiteditor()) if not n: raise util.Abort(_('commit failed')) if not merge:
--- a/mercurial/help/config.txt Sat Aug 16 10:43:59 2014 +0900 +++ b/mercurial/help/config.txt Sat Aug 16 10:43:59 2014 +0900 @@ -417,7 +417,8 @@ - ``changeset.shelve.shelve`` for :hg:`shelve` - ``changeset.tag.add`` for :hg:`tag` without ``--remove`` - ``changeset.tag.remove`` for :hg:`tag --remove` -- ``changeset.transplant`` for :hg:`transplant` +- ``changeset.transplant.merge`` for :hg:`transplant` on merges +- ``changeset.transplant.normal`` for :hg:`transplant` on other These dot-separated lists of names are treated as hierarchical ones. For example, ``changeset.tag.remove`` customizes the commit message
--- a/tests/test-transplant.t Sat Aug 16 10:43:59 2014 +0900 +++ b/tests/test-transplant.t Sat Aug 16 10:43:59 2014 +0900 @@ -95,8 +95,13 @@ $ hg ci -qm "b4" $ hg status --rev "7^1" --rev 7 A b3 - $ HGEDITOR=cat hg transplant --edit 7 + $ cat > $TESTTMP/checkeditform.sh <<EOF + > env | grep HGEDITFORM + > true + > EOF + $ HGEDITOR="sh $TESTTMP/checkeditform.sh; cat" hg transplant --edit 7 applying ffd6818a3975 + HGEDITFORM=transplant.normal b3 @@ -373,7 +378,8 @@ patch failed to apply abort: fix up the merge and run hg transplant --continue [255] - $ hg transplant --continue + $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant --continue -e + HGEDITFORM=transplant.normal 46ae92138f3c transplanted as 9159dada197d $ hg transplant 1:3 skipping already applied revision 1:46ae92138f3c @@ -430,9 +436,30 @@ transplant - $ hg transplant -m 1 + $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant -m 1 -e applying 42dc4432fd35 + HGEDITFORM=transplant.merge 1:42dc4432fd35 merged at a9f4acbac129 + $ hg update -q -C 2 + $ cat > a <<EOF + > x + > y + > z + > EOF + $ hg commit -m replace + $ hg update -q -C 4 + $ hg transplant -m 5 + applying 600a3cdcb41d + patching file a + Hunk #1 FAILED at 0 + 1 out of 1 hunks FAILED -- saving rejects to file a.rej + patch failed to apply + abort: fix up the merge and run hg transplant --continue + [255] + $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant --continue -e + HGEDITFORM=transplant.merge + 600a3cdcb41d transplanted as a3f88be652e0 + $ cd .. test transplant into empty repository