Subject: Re: [PATCH v3] setup: fail if .git is not a file or directory

From: Junio C Hamano <[email-masked]>
Date: Sun, 15 Feb 2026 18:37:22 -0800

Tian Yuchen <[email-masked]> writes:

> Sorry, I didn't express myself clearly. I meant I tested it myself but 
> never add a test script. Test script will be included in the next patch.

I see.  Thanks.

> On the other hand, if I understand correctly, state flows should be 
> categorized as follows:
>
>   1. Nothing there (ENOENT) ---> ignore and go up one level
>   2. Directory (IS_A_DIR) ---> check is_git_directory
>   3. NOT_A_FILE ---> die
>   4. *REAL* error (READ_FAILED, INVALID_FORMAT) ---> die
>
> And I mixed 1 and 2 and covered 4 in an obscure way (!= STAT_FAILED). I 
> don't think this code is "unrunable" but indeed the logic flow is 
> GARBAGE. I'll fix it.

The above 4-bullet list makes sense to me.  It makes me wonder what
the current code does and more importantly what we want to do when
we find a directory and is_git_directory() says that it is *not* a
valid one.

Thanks.