From: Junio C Hamano <gitster@pobox.com>
To: Tian Yuchen <a3205153416@gmail.com>
Cc: git@vger.kernel.org, karthik.188@gmail.com
Subject: Re: [PATCH v5 1/2] setup: distingush ENOENT from other stat errors
Date: Wed, 18 Feb 2026 10:43:28 -0800 [thread overview]
Message-ID: <xmqqpl617uzz.fsf@gitster.g> (raw)
In-Reply-To: <xmqqy0kp7wai.fsf@gitster.g> (Junio C. Hamano's message of "Wed, 18 Feb 2026 10:15:33 -0800")
Junio C Hamano <gitster@pobox.com> writes:
> Tian Yuchen <a3205153416@gmail.com> writes:
>
>> Currently, 'read_gitfile_gently()' treats all 'stat()' failures as
>> generic errors. This prevents distinguishing between a missing file and
>> real errors like permission denied (fatal).
>
> The above plan makes sense---you would split stat() error into two
> different classes, start returning ERR_STAT_NOENT in addition to
> ERR_STAT_FAILED, have the caller act on the new ERR_STAT_NOENT and
> adjust the way it acts on ERR_STAT_FAILED, and if possible add tests
> to make sure we react to failures from stat in an appropriate way
> (but how? --- it is where my "if possible" comes from). So I would
> expect that the other patch would be to split ERR_NOT_A_FILE and add
> ERR_IS_A_DIR, have the caller act on the new ERR_IS_A_DIR and adjust
> the way it acts on ERR_NOT_A_FILE.
I forgot to say one thing.
When changing the external interface for these service functions
like read_gitfile_gently() and read_gitfile_error_die(), we need to
make sure the change will not break _other_ callers of them, outside
our main focus area. The latter, for example, has a caller in
submodule.c and we need to make sure that the existing code is
reacting to the updated definition of what ERR_STAT_FAILED and
ERR_NOT_A_FILE mean (and if not, adjust it). read_gitfile_gently()
is used more widely outside setup.c and we need to audit these
callers, too.
next prev parent reply other threads:[~2026-02-18 18:43 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-11 18:21 [RFC] setup: fail if .git is not a file or directory Tian Yuchen
2026-02-11 19:47 ` Junio C Hamano
2026-02-12 17:33 ` Tian Yuchen
2026-02-12 17:24 ` [PATCH v2] " Tian Yuchen
2026-02-12 20:59 ` Junio C Hamano
2026-02-13 16:37 ` Tian Yuchen
2026-02-14 4:52 ` [PATCH v3] " Tian Yuchen
2026-02-15 8:41 ` Junio C Hamano
2026-02-15 16:22 ` Tian Yuchen
2026-02-16 2:37 ` Junio C Hamano
2026-02-16 16:02 ` Tian Yuchen
2026-02-17 8:41 ` [PATCH v4] setup: allow cwd/.git to be a symlink to a directory Tian Yuchen
2026-02-17 11:26 ` Karthik Nayak
2026-02-17 15:30 ` Tian Yuchen
2026-02-17 18:56 ` Karthik Nayak
2026-02-17 21:10 ` Junio C Hamano
2026-02-17 17:01 ` Junio C Hamano
2026-02-17 18:50 ` Karthik Nayak
2026-02-18 4:08 ` Tian Yuchen
2026-02-17 17:59 ` Karthik Nayak
2026-02-18 5:18 ` [PATCH v5 0/2] setup.c: v5 reroll Tian Yuchen
2026-02-18 5:18 ` [PATCH v5 1/2] setup: distingush ENOENT from other stat errors Tian Yuchen
2026-02-18 10:12 ` Karthik Nayak
2026-02-18 11:11 ` Tian Yuchen
2026-02-18 18:15 ` Junio C Hamano
2026-02-18 18:43 ` Junio C Hamano [this message]
2026-02-18 5:18 ` [PATCH v5 2/2] setup: allow cwd/.git to be a symlink to a directory Tian Yuchen
2026-02-18 10:27 ` Karthik Nayak
2026-02-18 11:20 ` Tian Yuchen
2026-02-18 18:25 ` Junio C Hamano
2026-02-19 5:11 ` Tian Yuchen
2026-02-15 17:08 ` [PATCH v3] setup: fail if .git is not a file or directory Tian Yuchen
2026-02-12 22:39 ` [RFC] " brian m. carlson
2026-02-12 22:45 ` Junio C Hamano
2026-02-12 23:03 ` brian m. carlson
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=xmqqpl617uzz.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=a3205153416@gmail.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@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.