threads / discuss / 64013

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

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

## tl;dr

2 messages between Aug 22, 2025 and Aug 26, 2025.

replies: 1people: 1as markdown or json

Damien Cassou· Aug 22, 2025, 15:10 UTC · lore
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
Damien Cassou· Aug 26, 2025, 15:38 UTC · re: Damien Cassou · lore

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

Damien Wyart sent me a bunch of links explaining my issue and allowed me to send them to the list in his name:

https://git-scm.com/docs/racy-git http://www-cs-students.stanford.edu/~blynn/gg/race.html https://tylercipriani.com/blog/2023/11/30/racy-git/ https://github.com/git-lfs/git-lfs/issues/196 https://stackoverflow.com/a/71003895 https://speakerdeck.com/msohn/racy-jgit-a-short-history-of-time

Best,
-- 
Damien Cassou

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

← back to recent threads