diff options
author | Thomas Gummerer <t.gummerer@gmail.com> | 2014-02-24 00:49:59 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-02-25 01:33:17 +0400 |
commit | 3c09d6845d253f9d8a75f3a36278c69e01b073e9 (patch) | |
tree | 3791637a413e81432101ab613f352edd9e57f221 /read-cache.c | |
parent | 5d9fc888b485caa1b6a95f2cb583dc26ab7e8d13 (diff) |
read-cache: add index.version config variable
Add a config variable that allows setting the default index version when
initializing a new index file. Similar to the GIT_INDEX_VERSION
environment variable this only affects new index files.
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/read-cache.c b/read-cache.c index efc4aaed98..6bc9724793 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1219,23 +1219,40 @@ static struct cache_entry *refresh_cache_entry(struct cache_entry *ce, int reall #define INDEX_FORMAT_DEFAULT 3 +static int index_format_config(const char *var, const char *value, void *cb) +{ + unsigned int *version = cb; + if (!strcmp(var, "index.version")) { + *version = git_config_int(var, value); + return 0; + } + return 1; +} + static unsigned int get_index_format_default(void) { char *envversion = getenv("GIT_INDEX_VERSION"); - if (!envversion) { - return INDEX_FORMAT_DEFAULT; - } else { - char *endp; - unsigned int version = strtoul(envversion, &endp, 10); + char *endp; + unsigned int version = INDEX_FORMAT_DEFAULT; - if (*endp || - version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) { - warning(_("GIT_INDEX_VERSION set, but the value is invalid.\n" + if (!envversion) { + git_config(index_format_config, &version); + if (version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) { + warning(_("index.version set, but the value is invalid.\n" "Using version %i"), INDEX_FORMAT_DEFAULT); - version = INDEX_FORMAT_DEFAULT; + return INDEX_FORMAT_DEFAULT; } return version; } + + version = strtoul(envversion, &endp, 10); + if (*endp || + version < INDEX_FORMAT_LB || INDEX_FORMAT_UB < version) { + warning(_("GIT_INDEX_VERSION set, but the value is invalid.\n" + "Using version %i"), INDEX_FORMAT_DEFAULT); + version = INDEX_FORMAT_DEFAULT; + } + return version; } /* |