Subject: Re: [PATCH v3 04/24] read-cache: clear version in discard_index()

From: Thomas Gummerer <[email-masked]>
Date: Wed, 21 Aug 2013 05:06:31 +0200

Junio C Hamano <[email-masked]> writes:

> Thomas Gummerer <[email-masked]> writes:
>
>> All fields except index_state->version are reset in discard_index.
>> Reset the version too.
>
> What is the practical consequence of not clearing this field?  I
> somehow have a feeling that this was done deliberately, so that we
> can stick to the version of the index file format better, once the
> user said "update-index --index-version $N" to set it up.  I suspect
> that the patch would affect a codepath that does read_cache(), calls
> discard_index(), populates the index and then does write_cache().
> We stick to the version the user specified earlier in our current
> code, while the patched code will revert to whatever default built
> into your Git binary, no?

Yeah you're right, I missed that use-case.  I'll drop this patch from
the re-roll.  Sorry for the noise.

>>
>> Signed-off-by: Thomas Gummerer <[email-masked]>
>> ---
>>  read-cache.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/read-cache.c b/read-cache.c
>> index de0bbcd..1e22f6f 100644
>> --- a/read-cache.c
>> +++ b/read-cache.c
>> @@ -1558,6 +1558,7 @@ int discard_index(struct index_state *istate)
>>  	for (i = 0; i < istate->cache_nr; i++)
>>  		free(istate->cache[i]);
>>  	resolve_undo_clear_index(istate);
>> +	istate->version = 0;
>>  	istate->cache_nr = 0;
>>  	istate->cache_changed = 0;
>>  	istate->timestamp.sec = 0;