3 test_description
='verify safe.bareRepository checks'
5 TEST_PASSES_SANITIZE_LEAK
=true
11 git
"$@" rev-parse
--git-dir
15 test_must_fail git
"$@" rev-parse
--git-dir 2>err
&&
16 grep -F "cannot use bare repository" err
19 test_expect_success
'setup bare repo in worktree' '
20 git init outer-repo &&
21 git init --bare outer-repo/bare-repo
24 test_expect_success
'safe.bareRepository unset' '
25 expect_accepted -C outer-repo/bare-repo
28 test_expect_success
'safe.bareRepository=all' '
29 test_config_global safe.bareRepository all &&
30 expect_accepted -C outer-repo/bare-repo
33 test_expect_success
'safe.bareRepository=explicit' '
34 test_config_global safe.bareRepository explicit &&
35 expect_rejected -C outer-repo/bare-repo
38 test_expect_success
'safe.bareRepository in the repository' '
39 # safe.bareRepository must not be "explicit", otherwise
40 # git config fails with "fatal: not in a git directory" (like
42 test_config -C outer-repo/bare-repo safe.bareRepository \
44 test_config_global safe.bareRepository explicit &&
45 expect_rejected -C outer-repo/bare-repo
48 test_expect_success
'safe.bareRepository on the command line' '
49 test_config_global safe.bareRepository explicit &&
50 expect_accepted -C outer-repo/bare-repo \
51 -c safe.bareRepository=all
54 test_expect_success
'safe.bareRepository in included file' '
55 cat >gitconfig-include <<-\EOF &&
57 bareRepository = explicit
59 git config --global --add include.path "$(pwd)/gitconfig-include" &&
60 expect_rejected -C outer-repo/bare-repo