Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-08-02 23:12:02 +0300
committerJunio C Hamano <gitster@pobox.com>2019-08-02 23:12:02 +0300
commite46249f73ebddca06cf16c01e8de1f310360c856 (patch)
treedd8f3bd4c4b56cd5b24ba24d281b037a08eb4d77
parent51cf315870bbb7254ddf06c84fe03b41bc48eebd (diff)
parent85fe0e800ca6acc690fc4c55931a200b4679211e (diff)
Merge branch 'js/early-config-with-onbranch'
The recently added [includeif "onbranch:branch"] feature does not work well with an early config mechanism, as it attempts to find out what branch we are on before we even haven't located the git repository. The inclusion during early config scan is ignored to work around this issue. * js/early-config-with-onbranch: config: work around bug with includeif:onbranch and early config
-rw-r--r--config.c3
-rwxr-xr-xt/t1309-early-config.sh5
2 files changed, 7 insertions, 1 deletions
diff --git a/config.c b/config.c
index ed7f58e0fcf..3900e4947be 100644
--- a/config.c
+++ b/config.c
@@ -275,7 +275,8 @@ static int include_by_branch(const char *cond, size_t cond_len)
int flags;
int ret;
struct strbuf pattern = STRBUF_INIT;
- const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, &flags);
+ const char *refname = !the_repository || !the_repository->gitdir ?
+ NULL : resolve_ref_unsafe("HEAD", 0, NULL, &flags);
const char *shortname;
if (!refname || !(flags & REF_ISSYMREF) ||
diff --git a/t/t1309-early-config.sh b/t/t1309-early-config.sh
index 413642aa567..0c37e7180d1 100755
--- a/t/t1309-early-config.sh
+++ b/t/t1309-early-config.sh
@@ -89,4 +89,9 @@ test_expect_failure 'ignore .git/ with invalid config' '
test_with_config "["
'
+test_expect_success 'early config and onbranch' '
+ echo "[broken" >broken &&
+ test_with_config "[includeif \"onbranch:refs/heads/master\"]path=../broken"
+'
+
test_done