Subject: Re: [PATCH v4 20/24] introduce GIT_INDEX_VERSION environment variable

From: Junio C Hamano <[email-masked]>
Date: Wed, 27 Nov 2013 14:08:27 -0800

Eric Sunshine <[email-masked]> writes:

> On Wed, Nov 27, 2013 at 7:00 AM, Thomas Gummerer <[email-masked]> wrote:
>> Respect a GIT_INDEX_VERSION environment variable, when a new index is
>> initialized.  Setting the environment variable will not cause existing
>> index files to be converted to another format for additional safety.
>>
>> Signed-off-by: Thomas Gummerer <[email-masked]>
>> ---
>> diff --git a/read-cache.c b/read-cache.c
>> index 46551af..04430e5 100644
>> --- a/read-cache.c
>> +++ b/read-cache.c
>> @@ -1233,8 +1233,13 @@ static struct cache_entry *refresh_cache_entry(struct cache_entry *ce, int reall
>>  void initialize_index(struct index_state *istate, int version)
>>  {
>>         istate->initialized = 1;
>> -       if (!version)
>> -               version = INDEX_FORMAT_DEFAULT;
>> +       if (!version) {
>> +               char *envversion = getenv("GIT_INDEX_VERSION");
>> +               if (!envversion)
>> +                       version = INDEX_FORMAT_DEFAULT;
>> +               else
>> +                       version = atoi(envversion);
>
> Do you want to check that atoi() returned a valid value and emit a
> diagnostic if it did not?

Good eyes.

We use strtoul() for this kind of thing instead of atoi() for format
checking.  The code also needs to make sure that the value obtained
thusly are among the versions that are supported.

Thanks.