Subject: Re: bug with git describe --dirty --broken

From: Junio C Hamano <[email-masked]>
Date: Fri, 21 Jun 2024 10:31:38 -0700

Paul Millar <[email-masked]> writes:

> Hi Junio,
>
> Thanks for your quick reply.
>
>> 	if (broken) {
>> 		run 'git diff-index' in a subprocess
>> 		use the result from 'diff-index' unless the command
>> 		aborted
>> 	} else if (dirty) {
>> 		refresh the index
>> 		run the equivalent of 'diff-index' in-core
>> 		use the result; if the in-core diff-index aborts,
>> 		you are dead already.
>> 	}
>
> Great.
>
> This matches my intuition from investigating this problem: the
> --broken flag triggers a different code-path.  However, it's good to
> have this confirmed.
>
>> I _think_ the "broken" codepath should be taught to also run "git
>> update-index --refresh" before it runs "git diff-index" (both in
>> their own subprocesses, or run in the same subprocess sequencially,
>> as if "git update-index --refresh && git diff-index" were run), and
>> your problem may disappear.
>
> For what it's worth, I agree.
>
> Also, just to mention it, fixing this problem isn't a priority (at
> least, not for me).  Simply removing the --broken flag resolves the
> problem and I can live without this functionality.

Thanks.  Let's mark it with #leftoverbits so that people who are
bored and looking for small and isolated things to do can work on it
on their ample spare time ;-)