From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: git@vger.kernel.org, 重田一聖 <kazumasa.shigeta@kanamei.com>
Subject: Re: [PATCH v3 1/7] stash: use an enum for create status
Date: Thu, 22 Oct 2026 10:01:14 -0700 [thread overview]
Message-ID: <xmqqpkx1hdph.fsf@gitster.g> (raw)
In-Reply-To: <7ffce2cb-07de-4bd3-a9b4-81fd27b920f5@gmail.com> (Phillip Wood's message of "Thu, 22 Oct 2026 16:57:32 +0100")
Phillip Wood <phillip.wood123@gmail.com> writes:
> On 21/10/2026 07:07, Junio C Hamano wrote:
>> Phillip Wood <phillip.wood123@gmail.com> writes:
>>
>>> +enum create_result {
>>> + CREATE_ERROR = -1,
>>> + CREATE_SUCCESS,
>>> + /* No changes were stashed */
>>> + CREATE_EMPTY,
>>> +};
>>
>> SUCCESS immediatly following ERROR that is explicitly defined to be
>> (-1) may qualify as explicitly defined to be 0, but personally I
>> probably prefer to be extra explicit here, like
>>
>> CREATE_ERROR = -1,
>> CREATE_SUCCESS = 0,
>>
>> even though this is not worth rerolling the series for.
>
> I can do that, though we really shouldn't be relying on the value for
> any of the member other than CREATE_ERROR which we want to match the
> return value of error(...).
The suggestion was merely because I thought that we also expect
SUCCESS to be 0 to write something like this:
if (!attempt_to_create(...))
happy;
If we truly care about ERROR == -1 and nothing else, then please
ignore the above.
>>> ret = stash_patch(info, ps, patch, quiet, interactive_opts);
>>> - if (ret < 0) {
>>> + if (ret == CREATE_ERROR) {
>>> if (!quiet)
>>> fprintf_ln(stderr, _("Cannot save the current "
>>> "worktree state"));
>>> goto done;
>>> - } else if (ret > 0) {
>>> + } else if (ret != CREATE_SUCCESS) {
>>> goto done;
>>> }
>>
>> I wonder if switch/case is easier to read for these users of these
>> enum return values. Some check explicitly against CREATE_ERROR
>> (like the one above), some treat anything other than CREATE_SUCCESS
>> as undesirable, etc.
>
> I've had a play with this and I think the enum is better here
Puzzled. I wasn't contrasting enum vs switch. I was contrasting
if/else if cascade against switch, assuming that both use enum.
next prev parent reply other threads:[~2026-10-22 17:01 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 16:35 [PATCH 0/2] stash: stop checking for changes twice Phillip Wood
2026-10-05 16:35 ` [PATCH 1/2] stash create: remove duplicate changes detection Phillip Wood
2026-10-06 12:44 ` Junio C Hamano
2026-10-07 13:49 ` Phillip Wood
2026-10-05 16:35 ` [PATCH 2/2] stash push: " Phillip Wood
2026-10-06 14:27 ` Junio C Hamano
2026-10-07 13:46 ` Phillip Wood
2026-10-07 17:15 ` Junio C Hamano
2026-10-08 13:35 ` Phillip Wood
2026-10-14 15:40 ` [PATCH v2 0/7] stash creation: avoid unecessary index loads and refreshes Phillip Wood
2026-10-14 15:40 ` [PATCH v2 1/7] stash: use an enum for create status Phillip Wood
2026-10-14 15:40 ` [PATCH v2 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-14 15:40 ` [PATCH v2 3/7] stash push: " Phillip Wood
2026-10-14 15:40 ` [PATCH v2 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-14 18:09 ` Junio C Hamano
2026-10-14 15:40 ` [PATCH v2 5/7] stash create: rework temporary index creation Phillip Wood
2026-10-14 18:16 ` Junio C Hamano
2026-10-20 14:54 ` Phillip Wood
2026-10-14 15:40 ` [PATCH v2 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-10-14 18:21 ` Junio C Hamano
2026-10-14 15:40 ` [PATCH v2 7/7] stash: simplify reset_tree() function signature Phillip Wood
2026-10-20 15:20 ` [PATCH v3 0/7] stash creation: avoid unecessary index loads and refreshes Phillip Wood
2026-10-20 15:20 ` [PATCH v3 1/7] stash: use an enum for create status Phillip Wood
2026-10-21 6:07 ` Junio C Hamano
2026-10-22 15:57 ` Phillip Wood
2026-10-22 17:01 ` Junio C Hamano [this message]
2026-10-22 18:33 ` Phillip Wood
2026-10-20 15:20 ` [PATCH v3 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-20 15:20 ` [PATCH v3 3/7] stash push: " Phillip Wood
2026-10-20 15:20 ` [PATCH v3 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-20 15:20 ` [PATCH v3 5/7] stash create: rework temporary index creation Phillip Wood
2026-10-20 22:07 ` Junio C Hamano
2026-10-20 15:20 ` [PATCH v3 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-10-20 15:20 ` [PATCH v3 7/7] stash: simplify reset_tree() function signature Phillip Wood
2026-10-21 0:07 ` [PATCH v3 0/7] stash creation: avoid unecessary index loads and refreshes Junio C Hamano
2026-10-23 15:03 ` [PATCH v4 " Phillip Wood
2026-10-23 15:03 ` [PATCH v4 1/7] stash: use an enum for create status Phillip Wood
2026-10-23 15:03 ` [PATCH v4 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-23 15:03 ` [PATCH v4 3/7] stash push: " Phillip Wood
2026-10-23 15:03 ` [PATCH v4 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-23 15:03 ` [PATCH v4 5/7] stash create: rework temporary index creation Phillip Wood
2026-10-23 15:03 ` [PATCH v4 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-10-23 15:03 ` [PATCH v4 7/7] stash: simplify reset_tree() function signature Phillip Wood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqpkx1hdph.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=kazumasa.shigeta@kanamei.com \
--cc=phillip.wood123@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.