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

From: Thomas Gummerer <[email-masked]>
Date: Thu, 28 Nov 2013 10:57:02 +0100

On 11/27, Junio C Hamano wrote:
> 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.

Thanks both.  Will use strtoul and check the value in the re-roll.

-- 
Thomas