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

Re: [PATCH v6 6/7] config: add `git_die_config()` to the config-set API

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Aug 1, 2014, 08:33 UTC
Message-ID
<vpqfvhg4nix.fsf@anie.imag.fr>
In-Reply-To
<xmqqtx5xw7n7.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 7 quoted lines
> Hmm, I am still confused ;-)
>
> Can there be more than one 'i' whose value->items[i].string is the
> same as the given value?  IOW, if you have "[user] name<EOL>" in
> both .git/config and ~/.gitconfig, don't we want to make sure that
> we complain on the one in .git/config, which would have taken
> precedence if it were spelled correctly?

For single-valued variables, yes. And for them, git_die_config(), as currently implemented does the right thing. My proposed change does not modify the behavior, it just extracts error messages and an if/then/else into a helper that can be used elsewhere.

For multi-valued variables, it's different. If you have a boggus value, further values will not override it. It will remain bogus.

The code consuming such multi-valued variable has to iterate over the string_list, and raise an error on bogus values. Ideally, it could show all the errors, but it's also reasonable to die() at the first one. The simplest behavior to implement is to die() at the first error.

(currently, git _segfaults_ at the first NULL value for notes.displayref, so it can't be much worse)

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Junio C HamanoNext: Tanay Abhra
Message 16 of 20 in “Rewrite `git_config()` using config-set API”
  1. 0/7 Rewrite `git_config()` using config-set APITanay Abhra, Jul 31, 2014
  2. 1/7 config.c: fix accuracy of line number in errorsTanay Abhra, Jul 31, 2014
  3. 2/7 add line number and file name info to `config_set`Tanay Abhra, Jul 31, 2014
  4. 3/7 change `git_config()` return value to voidTanay Abhra, Jul 31, 2014
  5. 4/7 rewrite git_config() to use the config-set APITanay Abhra, Jul 31, 2014
  6. 5/7 add a test for semantic errors in config filesTanay Abhra, Jul 31, 2014
  7. 6/7 config: add `git_die_config()` to the config-set APITanay Abhra, Jul 31, 2014
  8. Matthieu MoyJul 31, 2014
  9. Tanay AbhraJul 31, 2014
  10. Matthieu MoyJul 31, 2014
  11. Tanay AbhraJul 31, 2014
  12. Matthieu MoyJul 31, 2014
  13. Tanay AbhraJul 31, 2014
  14. Matthieu MoyJul 31, 2014
  15. Junio C HamanoJul 31, 2014
  16. Matthieu MoyAug 1, 2014
  17. Tanay AbhraAug 1, 2014
  18. Matthieu MoyAug 1, 2014
  19. 7/7 add tests for `git_config_get_string_const()`Tanay Abhra, Jul 31, 2014
  20. Matthieu MoyJul 31, 2014

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.