On Fri, Apr 16, 2021 at 11:14:51PM +0200, SZEDER Gábor wrote:
> > @@ -1883,6 +1880,7 @@ static int do_git_config_sequence(const struct config_options *opts,
> > config_fn_t fn, void *data)
> > {
> > int ret = 0;
> > + char *system_config = git_system_config();
> > char *xdg_config = xdg_config_home("config");
> > char *user_config = expand_user_path("~/.gitconfig", 0);
> > char *repo_config;
> > @@ -1896,11 +1894,10 @@ static int do_git_config_sequence(const struct config_options *opts,
> > repo_config = NULL;
> >
> > current_parsing_scope = CONFIG_SCOPE_SYSTEM;
> > - if (git_config_system() && !access_or_die(git_etc_gitconfig(), R_OK,
>
> Removing git_config_system() from the condition breaks
> GIT_CONFIG_NOSYSTEM:
Good catch. My gut feeling is that the new git_system_config() should
check NOSYSTEM and return NULL if it's set, and then we can get rid of
git_config_system() entirely.
That is slightly different than the old behavior; right now
GIT_CONFIG_NOSYSTEM only prevents reading during the normal sequence,
and not reading (or writing!) via "git config --system". But I think it
would be an improvement to prevent those (the whole point of the feature
was to avoid the test suite accidentally accessing the larger
environment).
-Peff