abbrev: add FALLBACK_DEFAULT_ABBREV to prepare for auto sizing

We'll be introducing a new way to decide the default abbreviation length by initialising DEFAULT_ABBREV to -1 to signal the first call to "find unique abbreviation" codepath to compute a reasonable value based on the number of objects we have to avoid collisions. We have long relied on DEFAULT_ABBREV being a positive concrete value that is used as the abbreviation length when no extra configuration or command line option has overridden it. Some codepaths wants to use such a positive concrete default value even before making their first request to actually trigger the computation for the auto sized default. Introduce FALLBACK_DEFAULT_ABBREV and use it to the code that attempts to align the report from "git fetch". For now, this macro is also used to initialize the default_abbrev variable, but the auto-sizing code will use -1 and then use the value of FALLBACK_DEFAULT_ABBREV as the starting point of auto-sizing. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Sep 30, 2016 at 17:19 UTC 65acfeacaa6e50c92a6ac18dc08356026a99b3f3
4 files changed +8 -3
builtin/fetch.c
+3
@@ -17,6 +17,9 @@
17 #include "argv-array.h"
18 #include "utf8.h"
19
20 +#define TRANSPORT_SUMMARY(x) \
21 + (int)(TRANSPORT_SUMMARY_WIDTH + strlen(x) - gettext_width(x)), (x)
22 +
23 static const char * const builtin_fetch_usage[] = {
24 N_("git fetch [<options>] [<repository> [<refspec>...]]"),
25 N_("git fetch [<options>] <group>"),
cache.h
+3
@@ -1183,6 +1183,9 @@ static inline int hex2chr(const char *s)
1183 #define MINIMUM_ABBREV minimum_abbrev
1184 #define DEFAULT_ABBREV default_abbrev
1185
1186 +/* used when the code does not know or care what the default abbrev is */
1187 +#define FALLBACK_DEFAULT_ABBREV 7
1188 +
1189 struct object_context {
1190 unsigned char tree[20];
1191 char path[PATH_MAX];
environment.c
+1 -1
@@ -16,7 +16,7 @@ int trust_executable_bit = 1;
16 int trust_ctime = 1;
17 int check_stat = 1;
18 int has_symlinks = 1;
19 -int minimum_abbrev = 4, default_abbrev = 7;
19 +int minimum_abbrev = 4, default_abbrev = FALLBACK_DEFAULT_ABBREV;
20 int ignore_case;
21 int assume_unchanged;
22 int prefer_symlink_refs;
transport.h
+1 -2
@@ -142,8 +142,7 @@ struct transport {
142 #define TRANSPORT_PUSH_ATOMIC 8192
143 #define TRANSPORT_PUSH_OPTIONS 16384
144
145 -#define TRANSPORT_SUMMARY_WIDTH (2 * DEFAULT_ABBREV + 3)
146 -#define TRANSPORT_SUMMARY(x) (int)(TRANSPORT_SUMMARY_WIDTH + strlen(x) - gettext_width(x)), (x)
145 +#define TRANSPORT_SUMMARY_WIDTH (2 * FALLBACK_DEFAULT_ABBREV + 3)
146
147 /* Returns a transport suitable for the url */
148 struct transport *transport_get(struct remote *, const char *);