Subject: git status shows a different result depending on how fast a file is changed

From: Damien Cassou <[email-masked]>
Date: Fri, 22 Aug 2025 17:10:48 +0200

Hi,

The attached script has a commented "sleep 1s" line in the middle. If it
is commented, "git status" at the end will not list your last changes to
foo.txt (which I find a weird behavior). If you uncomment the line, "git
status" will see your changes.

My global Git configuration file ~/.config/git/config only contains
settings for user.name and user.email. I can reproduce both on macOS and
GNU/Linux. My Git version is 2.50.1.

I realize that if the date of foo.txt at the end of the script is
changed then "git status" will always detect the change. I also realize
that if the size of foo.txt changes then "git status" will always
detect the change.

Can somebody explain me how the "delay 1s" command can change the
behavior of "git status"? If you know where in the C code this behavior
is implemented, I'm interested as well.

Thank you very much

-- 
Damien Cassou

"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill