cherry-pick: do not error on non-merge commits when '-m 1' is specified
PATCH 1/1 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. Besides, as mainline is always the only parent for a non-merge commit, it made little sense to disable it in the first place.
Signed-off-by Sergey Organov <[email protected]>
--- sequencer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
sequencer.c +5 -3
@@ -1543,9 +1543,11 @@ 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;
Signature · 1 line
2.10.0.1.g57b01a3