Merge branch 'jc/abbrev-autoscale-config'

Recent update to the default abbreviation length that auto-scales
lacked documentation update, which has been corrected.

* jc/abbrev-autoscale-config:
  config.abbrev: document the new default that auto-scales
This commit is contained in:
Junio C Hamano 2017-01-10 15:24:26 -08:00
commit 33cf69403c
2 changed files with 15 additions and 8 deletions

View File

@ -783,10 +783,11 @@ core.sparseCheckout::
linkgit:git-read-tree[1] for more information. linkgit:git-read-tree[1] for more information.
core.abbrev:: core.abbrev::
Set the length object names are abbreviated to. If unspecified, Set the length object names are abbreviated to. If
many commands abbreviate to 7 hexdigits, which may not be enough unspecified or set to "auto", an appropriate value is
for abbreviated object names to stay unique for sufficiently long computed based on the approximate number of packed objects
time. in your repository, which hopefully is enough for
abbreviated object names to stay unique for some time.
add.ignoreErrors:: add.ignoreErrors::
add.ignore-errors (deprecated):: add.ignore-errors (deprecated)::

View File

@ -836,10 +836,16 @@ static int git_default_core_config(const char *var, const char *value)
} }
if (!strcmp(var, "core.abbrev")) { if (!strcmp(var, "core.abbrev")) {
if (!value)
return config_error_nonbool(var);
if (!strcasecmp(value, "auto"))
default_abbrev = -1;
else {
int abbrev = git_config_int(var, value); int abbrev = git_config_int(var, value);
if (abbrev < minimum_abbrev || abbrev > 40) if (abbrev < minimum_abbrev || abbrev > 40)
return -1; return error("abbrev length out of range: %d", abbrev);
default_abbrev = abbrev; default_abbrev = abbrev;
}
return 0; return 0;
} }