Subject: Re: Should update-index --refresh force writing the index in case of racy timestamps?

From: Junio C Hamano <[email-masked]>
Date: Fri, 17 Dec 2021 16:08:32 -0800

"brian m. carlson" <[email-masked]> writes:

> On 2021-12-17 at 10:44:32, Marc Strapetz wrote:
>> For one of my Git-LFS test repositories, switching between branches quite
>> often results in lots of racy index timestamps. Subsequent calls to "git
>> update-index --refresh" or "git status" will invoke the "lfs" filter over
>> and over again, just to figure out that all entries are still up-to-date.
>> Hence, the index will never be rewritten and racy timestamps will remain.
>> 
>> To break out of this state, it seems favorable to write the index if any
>> racy timestamp is detected. We will be able to provide a patch if this
>> change sounds reasonable.
>
> Sure, this sounds reasonable, especially if, as you mentioned, git
> status already does this.  We might as well make the plumbing commands
> as functional as the porcelain commands.

Given that "update-index --refresh" is a way to say "we know
something changed to make cached stat information dirty even for
otherwise clean paths and we want our 'diff-files' and other
plumbing command to start relying on the cached stat information
again, so please do as much I/O as you need", I agree that it should
do as thourough job as necessary.