From: Tian Yuchen Date: Sat, 28 Feb 2026 04:38:54 GMT Subject: Re: [PATCH v11] setup: improve error diagnosis for invalid .git files Message-ID: In-Reply-To: Hi Junio, Thanks for pushing back on my previous suggestion. > It sounds like saying "oh, this is too hard, let's punt and roll all > failures from stat() into 'nothing there, move on'", which is how > the code used to work before this patch X-<. Yeah, that's why I said this idea was pretty dumb. XD Regarding your question about how 'stat()' gets into the picture, I tried GDB debugging and simulated Windows behavior by 'GIT_DIR=nul' (I'm NOT sure if it's correct). Here is the back trace caught: (gdb) print path $1 = 0x555555a86dd0 "nul" (gdb) bt #0 read_gitfile_gently (path=0x555555a86dd0 "nul", return_error_code=0x0) at setup.c:936 #1 0x000055555589dea1 in setup_explicit_git_dir ( gitdirenv=0x555555a86dd0 "nul", cwd=0x555555a58070 , repo_fmt=0x7fffffffcbe0, nongit_ok=0x7fffffffccc4) at setup.c:1107 #2 0x000055555589fd53 in setup_git_directory_gently (nongit_ok=0x7fffffffccc4) at setup.c:1867 #3 0x00005555555c1383 in cmd_diff (argc=4, argv=0x555555a86ce0, prefix=0x0, repo=0x0) at builtin/diff.c:458 #4 0x0000555555575e30 in run_builtin (p=0x555555a48368 , argc=4, argv=0x555555a86ce0, repo=0x555555a7bdc0 ) at git.c:506 #5 0x0000555555576354 in handle_builtin (args=0x7fffffffdc10) at git.c:780 #6 0x000055555557667e in run_argv (args=0x7fffffffdc10) at git.c:863 #7 0x0000555555576b44 in cmd_main (argc=4, argv=0x7fffffffdda0) at git.c:985 #8 0x00005555556a73bf in main (argc=5, argv=0x7fffffffdd98) at common-main.c:9 Sorry it might be a bit messy. It turns out that 'setup_explicit_git_dir()' calls 'read_gitfile_gently()' right away to check whether GIT_DIR is actually a gitfile, right? Since stat("nul") fails on windows, STAT_FAILED was caught and immediately triggered die(), blowing up corresponding CI tests. Still, I don't know Windows well. These thoughts are just to stimulate discussions. ( ´_ゝ`) Thanks, Yuchen