Subject: Re: [PATCH v3] builtin/revert.c: refactor using an enum for cmd-action

From: Junio C Hamano <[email-masked]>
Date: Thu, 11 Jan 2024 13:47:48 -0800

Michael Lohmann <[email-masked]> writes:

> This is done to avoid having to keep the char values in sync in
> different places and also to get compiler warnings on non-exhaustive
> switches.
>
> In the rebase `action` enum there is the enumeration constant
> `ACTION_NONE` which is not particularly descriptive, since it seems to
> imply that no action should be taken. Instead it signals a start of a
> revert/cherry-pick process, so here `ACTION_START` was chosen.
>
> Co-authored-by: Wanja Henze <[email-masked]>
> Signed-off-by: Michael Lohmann <[email-masked]>
> ---
>
> On 11. Jan 2024, at 20:37, Junio C Hamano <[email-masked]> wrote:
>> Phillip Wood <[email-masked]> writes:
>> > I think ACTION_NONE was intended to covey that the user did not pass
>> > one of the OPT_CMDMODE() options like "--continue" as there isn't a
>> > "--start" option. I don't have a strong opinion between "_NONE" and
>> > "_START".
>>
>> I agree with you why NONE is called as such.  If "revert" does not
>> take "--start" (I do not remember offhand), I would think it would
>> be better to follow suit.
> My point was that yes, it might be in sync with what the user passes in
> as arguments, but when I followed the code and saw lots of references to
> ACTION_NONE I was puzzled, since my intuition of that name was that
> _no action_ should be taken (which did not make sense to me).

I know you wrote that ;-).  But _NONE is "no action was specified",
and has been so for a long time in the context of "rebase". I do not
see any confusion expressed there.  I do not expect to see any
confusion here, either, if we were to introduce these new enum.