config: stop checking whether the_repository is NULL
Since the previous commit, our invariant that the_repository is never NULL is restored, and we can stop being defensive in include_by_branch(). We can confirm the fix by showing that an onbranch config include will not cause a segfault when run outside a git repository. I've put this in t1309-early-config since it's related to the case added by 85fe0e800c (config: work around bug with includeif:onbranch and early config, 2019-07-31), though technically the issue was with read_very_early_config() and not read_early_config(). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Aug 6, 2019 at 08:27 UTC
22932d9169fea7c826c85e2407054feff30ebaf1
2 files changed
+6
-1
config.c
+1
-1
@@ -275,7 +275,7 @@ static int include_by_branch(const char *cond, size_t cond_len)
275
int flags;
276
int ret;
277
struct strbuf pattern = STRBUF_INIT;
278
- const char *refname = !the_repository || !the_repository->gitdir ?
278
+ const char *refname = !the_repository->gitdir ?
279
NULL : resolve_ref_unsafe("HEAD", 0, NULL, &flags);
280
const char *shortname;
281
t/t1309-early-config.sh
+5
@@ -94,4 +94,9 @@ test_expect_success 'early config and onbranch' '
94
test_with_config "[includeif \"onbranch:master\"]path=../broken"
95
'
96
97
+test_expect_success 'onbranch config outside of git repo' '
98
+ test_config_global includeIf.onbranch:master.path non-existent &&
99
+ nongit git help
100
+'
101
+
102
test_done