summaryrefslogtreecommitdiff
path: root/sequencer.c
diff options
context:
space:
mode:
authorSergey Organov <sorganov@gmail.com>2018-12-14 04:53:51 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-12-26 22:43:22 (GMT)
commit37897bfc27d3003dddf7722113e676e925fe9e21 (patch)
tree230d4d15ddc32927c306fc6bc7fd397d35bf4809 /sequencer.c
parentc812bd4669d8907186dab8aed47f2c83dfb93fff (diff)
downloadgit-37897bfc27d3003dddf7722113e676e925fe9e21.zip
git-37897bfc27d3003dddf7722113e676e925fe9e21.tar.gz
git-37897bfc27d3003dddf7722113e676e925fe9e21.tar.bz2
cherry-pick: do not error on non-merge commits when '-m 1' is specified
When cherry-picking multiple commits, it's impossible to have both merge- and non-merge commits on the same command-line. Not specifying '-m 1' results in cherry-pick refusing to handle merge commits, while specifying '-m 1' fails on non-merge commits. This patch allows '-m 1' for non-merge commits. As mainline is always the only parent for a non-merge commit, it makes little sense to disable it. Signed-off-by: Sergey Organov <sorganov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sequencer.c b/sequencer.c
index e1a4dd1..d0fd61b 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -1766,9 +1766,13 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
return error(_("commit %s does not have parent %d"),
oid_to_hex(&commit->object.oid), opts->mainline);
parent = p->item;
- } else if (0 < opts->mainline)
- return error(_("mainline was specified but commit %s is not a merge."),
- oid_to_hex(&commit->object.oid));
+ } else if (1 < opts->mainline)
+ /*
+ * Non-first parent explicitly specified as mainline for
+ * non-merge commit
+ */
+ return error(_("commit %s does not have parent %d"),
+ oid_to_hex(&commit->object.oid), opts->mainline);
else
parent = commit->parents->item;