Subject: Re: [RFC PATCH] cherry-pick: set default `--mainline` parent to 1

From: Sergey Organov <[email-masked]>
Date: Thu, 21 Mar 2019 09:54:03 +0300

Junio C Hamano <[email-masked]> writes:

> Sergey Organov <[email-masked]> writes:
>
>>> To put it a bit differently, I share with you that picking merges
>>> should be deliberate and it is safer to make sure allowing it only
>>> when the told us that s/he knows the commit being picked is a merge,
>>
>> Something like "--[no-]ban-merges" then [*], having "--ban-merges" as
>> default?
>>
>>> but when we started allowing "-m 1" for non-merge commits in the
>>> current world where cherry-pick can work on a range, the ship has
>>> already sailed.
>>
>> Except that it could be a different ship, provided we've got
>> "--ban-merges". Having "-m 1" as default stops to be an issue, and
>> explicit "-m 1" could then imply --no-ban-merges, that could be in turn
>> overwritten by explicit "--ban-merges", if necessary.
>
> The same effect can be had by just reverting "let's allow -m1 for
> single-parent commit", can't it?  That is a far simpler solution, I
> would say.

To clarify further my short answer:

S>  Those one didn't introduce the issue currently at hand, as we still
S>  don't allow merges by default, so why do we need to rewind it?

The "let's allow -m1 for single-parent commit" even doesn't affect merge
commits at all, so I fail to see how reverting it may help to resolve
the issue that C.J. wants to solve with his proposed patch.

If we want to disallow picking merges by default, it's already so right
now, no reverts or patches required.

Then, as I see it, it's the current way of allowing merges, that
cryptically reads as "-m 1", that makes the OP unhappy. This problem was
already there before the aforementioned patch, so reverting the patch
won't solve it. OTOH, it's exactly this problem that "--[no]-ban-merges"
would solve.

Finally, "--[no-]ban-merges" would allow to easily make "-m 1" the
default later, as a separate change, should we decide it's the right
thing to do.

-- Sergey