On Thu, Apr 08 2021, Junio C Hamano wrote: > Patrick Steinhardt <ps@xxxxxx> writes: >> +test_expect_success 'GIT_CONFIG_NOGLOBAL' ' >> + test_when_finished rm -f "$HOME"/.config/git && >> + cat >"$HOME"/.gitconfig <<-EOF && >> + [home] >> + config = true >> + EOF >> + mkdir -p "$HOME"/.config/git && >> + cat >"$HOME"/.config/git/config <<-EOF && >> + [xdg] >> + config = true >> + EOF >> + cat >.git/config <<-EOF && >> + [local] >> + config = true >> + EOF >> + >> + cat >expect <<-EOF && >> + global xdg.config=true >> + global home.config=true >> + local local.config=true >> + EOF >> + git config --show-scope --list >output && >> + test_cmp expect output && >> + >> + cat >expect <<-EOF && >> + local local.config=true >> + EOF >> + GIT_CONFIG_NOGLOBAL=true git config --show-scope --list >output && >> + test_cmp expect output >> +' > > This test was what initially piqued my curiosity, as the fact that > the result filtered with the new mechanism has only 'local' misled > me to incorrectly think that we are suppressing both 'system' and > 'global' with the single variable. Until I realized that we cannot > test the 'system' configuration in our test suite, that is. I haven't tested this, but that seems like a thing we want to mock in the test suite by just having git_etc_gitconfig() check a GIT_TEST_* variable. I had a git_env_str() in [1] that we could use for that, or maybe it should be git_env_path() in this case with the same --path handling, or just do what repo_default_branch_name() does. 1. https://lore.kernel.org/git/20201113161320.16458-1-avarab@xxxxxxxxx/