git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] config: respect includes in protected config

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 12, 2022, 21:07 UTC
Message-ID
<xmqqilkokaxj.fsf@gitster.g>
In-Reply-To
<0ff5b5741a519c63e65ef57d7d0b3148c38c1a52.1665603814.git.gitgitgadget@gmail.com>
"Glen Choo via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 35 quoted lines
> -int git_configset_add_parameters(struct config_set *cs)
> -{
> -	return git_config_from_parameters(config_set_callback, cs);
> -}
> -
>  int git_configset_get_value(struct config_set *cs, const char *key, const char **value)
>  {
>  	const struct string_list *values = NULL;
> @@ -2641,24 +2636,15 @@ int repo_config_get_pathname(struct repository *repo,
>  /* Read values into protected_config. */
>  static void read_protected_config(void)
>  {
> -	char *xdg_config = NULL, *user_config = NULL, *system_config = NULL;
> -
> +	struct config_options opts = {
> +		.respect_includes = 1,
> +		.ignore_repo = 1,
> +		.ignore_worktree = 1,
> +		.system_gently = 1,
> +	};
>  	git_configset_init(&protected_config);
> -
> -	system_config = git_system_config();
> -	git_global_config(&user_config, &xdg_config);
> -
> -	if (system_config)
> -		git_configset_add_file(&protected_config, system_config);
> -	if (xdg_config)
> -		git_configset_add_file(&protected_config, xdg_config);
> -	if (user_config)
> -		git_configset_add_file(&protected_config, user_config);
> -	git_configset_add_parameters(&protected_config);
> -	free(system_config);
> -	free(xdg_config);
> -	free(user_config);

Compared to the above hand-crafted sequence, we seem to be a lot more careful in config.c::do_git_config_sequence() with respect to error checking, which is good. We can lose the custom helper to read from command line parameters, which is also nice.

> +	config_with_options(config_set_callback, &protected_config,
> +			    NULL, &opts);
>  }

Very nice, code reduction with an additional feature. I wish all fixes were like this.

>  config.c                        | 30 ++++++++----------------------
>  t/t0033-safe-directory.sh       |  2 +-
>  t/t0035-safe-bare-repository.sh |  2 +-
>  3 files changed, 10 insertions(+), 24 deletions(-)
Previous: Glen ChooNext: Glen Choo
Message 7 of 13 in “[2.38 regression] config: respect includes in protected config”
  1. 0/2 [2.38 regression] config: respect includes in protected configGlen Choo via GitGitGadget, Oct 12, 2022
  2. 1/2 t0033, t0035: test for included configGlen Choo via GitGitGadget, Oct 12, 2022
  3. Ævar Arnfjörð BjarmasonOct 12, 2022
  4. 2/2 config: respect includes in protected configGlen Choo via GitGitGadget, Oct 12, 2022
  5. Junio C HamanoOct 12, 2022
  6. Glen ChooOct 12, 2022
  7. Junio C HamanoOct 12, 2022
  8. Glen ChooOct 12, 2022
  9. Junio C HamanoOct 12, 2022
  10. config: respect includes in protected configGlen Choo via GitGitGadget, Oct 13, 2022
  11. Glen ChooOct 13, 2022
  12. Jeff KingOct 14, 2022
  13. Johannes SchindelinOct 18, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.