]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t1305: exercise edge cases of "onbranch" includes
authorPatrick Steinhardt <ps@pks.im>
Tue, 24 Sep 2024 10:05:42 +0000 (12:05 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 24 Sep 2024 16:18:16 +0000 (09:18 -0700)
Add a couple more tests for "onbranch" includes for several edge cases.
All tests except for the last one pass, so for the most part this change
really only aims to nail down behaviour of include conditionals further.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1305-config-include.sh

index 5cde79ef8c4fa34b61eba75f98e827f05e2a27ab..ad08db7230813a1a052775aa79f176b9ae71c15b 100755 (executable)
@@ -357,4 +357,44 @@ test_expect_success 'include cycles are detected' '
        grep "exceeded maximum include depth" stderr
 '
 
+test_expect_success 'onbranch with unborn branch' '
+       test_when_finished "rm -rf repo" &&
+       git init repo &&
+       (
+               cd repo &&
+               git config set includeIf.onbranch:"*".path config.inc &&
+               git config set -f .git/config.inc foo.bar baz &&
+               git config get foo.bar
+       )
+'
+
+test_expect_success 'onbranch with detached HEAD' '
+       test_when_finished "rm -rf repo" &&
+       git init repo &&
+       (
+               cd repo &&
+               git config set "includeIf.onbranch:*.path" config.inc &&
+               git config set -f .git/config.inc foo.bar baz &&
+               test_commit initial &&
+               git switch --detach HEAD &&
+               test_must_fail git config get foo.bar
+       )
+'
+
+test_expect_success 'onbranch without repository' '
+       test_when_finished "rm -f .gitconfig config.inc" &&
+       git config set -f .gitconfig "includeIf.onbranch:**.path" config.inc &&
+       git config set -f config.inc foo.bar baz &&
+       git config get foo.bar &&
+       test_must_fail nongit git config get foo.bar
+'
+
+test_expect_failure 'onbranch without repository but explicit nonexistent Git directory' '
+       test_when_finished "rm -f .gitconfig config.inc" &&
+       git config set -f .gitconfig "includeIf.onbranch:**.path" config.inc &&
+       git config set -f config.inc foo.bar baz &&
+       git config get foo.bar &&
+       test_must_fail nongit git --git-dir=nonexistent config get foo.bar
+'
+
 test_done