mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
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).
This commit is contained in:
parent
7a8c1645ce
commit
67129a7816
@ -86,7 +86,10 @@ class transplanter(object):
|
|||||||
self.opener = scmutil.opener(self.path)
|
self.opener = scmutil.opener(self.path)
|
||||||
self.transplants = transplants(self.path, 'transplants',
|
self.transplants = transplants(self.path, 'transplants',
|
||||||
opener=self.opener)
|
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):
|
def applied(self, repo, node, parent):
|
||||||
'''returns True if a node is already an ancestor of parent
|
'''returns True if a node is already an ancestor of parent
|
||||||
@ -286,7 +289,7 @@ class transplanter(object):
|
|||||||
m = match.exact(repo.root, '', files)
|
m = match.exact(repo.root, '', files)
|
||||||
|
|
||||||
n = repo.commit(message, user, date, extra=extra, match=m,
|
n = repo.commit(message, user, date, extra=extra, match=m,
|
||||||
editor=self.editor)
|
editor=self.getcommiteditor())
|
||||||
if not n:
|
if not n:
|
||||||
self.ui.warn(_('skipping emptied changeset %s\n') % short(node))
|
self.ui.warn(_('skipping emptied changeset %s\n') % short(node))
|
||||||
return None
|
return None
|
||||||
@ -342,7 +345,7 @@ class transplanter(object):
|
|||||||
if merge:
|
if merge:
|
||||||
repo.setparents(p1, parents[1])
|
repo.setparents(p1, parents[1])
|
||||||
n = repo.commit(message, user, date, extra=extra,
|
n = repo.commit(message, user, date, extra=extra,
|
||||||
editor=self.editor)
|
editor=self.getcommiteditor())
|
||||||
if not n:
|
if not n:
|
||||||
raise util.Abort(_('commit failed'))
|
raise util.Abort(_('commit failed'))
|
||||||
if not merge:
|
if not merge:
|
||||||
|
@ -417,7 +417,8 @@ messages for each actions.
|
|||||||
- ``changeset.shelve.shelve`` for :hg:`shelve`
|
- ``changeset.shelve.shelve`` for :hg:`shelve`
|
||||||
- ``changeset.tag.add`` for :hg:`tag` without ``--remove``
|
- ``changeset.tag.add`` for :hg:`tag` without ``--remove``
|
||||||
- ``changeset.tag.remove`` for :hg:`tag --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.
|
These dot-separated lists of names are treated as hierarchical ones.
|
||||||
For example, ``changeset.tag.remove`` customizes the commit message
|
For example, ``changeset.tag.remove`` customizes the commit message
|
||||||
|
@ -95,8 +95,13 @@ clone so subsequent rollback isn't affected
|
|||||||
$ hg ci -qm "b4"
|
$ hg ci -qm "b4"
|
||||||
$ hg status --rev "7^1" --rev 7
|
$ hg status --rev "7^1" --rev 7
|
||||||
A b3
|
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
|
applying ffd6818a3975
|
||||||
|
HGEDITFORM=transplant.normal
|
||||||
b3
|
b3
|
||||||
|
|
||||||
|
|
||||||
@ -373,7 +378,8 @@ transplant -c shouldn't use an old changeset
|
|||||||
patch failed to apply
|
patch failed to apply
|
||||||
abort: fix up the merge and run hg transplant --continue
|
abort: fix up the merge and run hg transplant --continue
|
||||||
[255]
|
[255]
|
||||||
$ hg transplant --continue
|
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant --continue -e
|
||||||
|
HGEDITFORM=transplant.normal
|
||||||
46ae92138f3c transplanted as 9159dada197d
|
46ae92138f3c transplanted as 9159dada197d
|
||||||
$ hg transplant 1:3
|
$ hg transplant 1:3
|
||||||
skipping already applied revision 1:46ae92138f3c
|
skipping already applied revision 1:46ae92138f3c
|
||||||
@ -430,9 +436,30 @@ Issue1111: Test transplant --merge
|
|||||||
|
|
||||||
transplant
|
transplant
|
||||||
|
|
||||||
$ hg transplant -m 1
|
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg transplant -m 1 -e
|
||||||
applying 42dc4432fd35
|
applying 42dc4432fd35
|
||||||
|
HGEDITFORM=transplant.merge
|
||||||
1:42dc4432fd35 merged at a9f4acbac129
|
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 ..
|
$ cd ..
|
||||||
|
|
||||||
test transplant into empty repository
|
test transplant into empty repository
|
||||||
|
Loading…
Reference in New Issue
Block a user