• J
    abbrev: prepare for new world order · 7b5b7721
    Junio C Hamano 提交于
    The code that sets custom abbreviation length, in response to
    command line argument, often does something like this:
    
    	if (skip_prefix(arg, "--abbrev=", &arg))
    		abbrev = atoi(arg);
    	else if (!strcmp("--abbrev", &arg))
    		abbrev = DEFAULT_ABBREV;
    	/* make the value sane */
    	if (abbrev < 0 || 40 < abbrev)
    		abbrev = ... some sane value ...
    
    However, it is pointless to sanity-check and tweak the value
    obtained from DEFAULT_ABBREV.  We are going to allow it to be
    initially set to -1 to signal that the default abbreviation length
    must be auto sized upon the first request to abbreviate, based on
    the number of objects in the repository, and when that happens,
    rejecting or tweaking a negative value to a "saner" one will
    negatively interfere with the auto sizing.  The codepaths for
    
        git rev-parse --short <object>
        git diff --raw --abbrev
    
    do exactly that; allow them to pass possibly negative abbrevs
    intact, that will come from DEFAULT_ABBREV in the future.
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    7b5b7721
diff.c 139.4 KB