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

Re: [PATCH v3 3/4] fetch-pack: split out fsck config parsing

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 4, 2024, 02:39 UTC
Message-ID
<xmqq34j45fzr.fsf@gitster.g>
In-Reply-To
<xmqqy10w9x0m.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 9 quoted lines
> Patrick Steinhardt <ps@pks.im> writes:
>
>> I think the current version of this patch series is fine as-is then. It
>> might be a good idea to adapt this in a follow-up series, unless there
>> is a good reason not to.
>
> Sounds good.  We may want to tighten the rules a bit to reject
> obvious misconfigurations, but that is outside the scope of this
> topic.
This reminds me of a slightly related tangent.

There are pathname-valued ones that we added deliberately as an optional configuration variable, IIRC, and fsck.skiplist may be one of them. In other words, they mean "In a repository that I want the configuration to affect, I'll have the configuration file at this path, but it is merely optional. If it is missing, pretend as if the configuration variable does not even exist".

In retrospect, it was a mistake to define that this variable is required and triggers an error when misconfigured, and that variable is optional and triggers only a warning when misconfigured. That is one more thing for the user to remember and does not scale.

We probably should have done something like
 - the value given to all pathname valued configuration variables
   and command name options MUST correctly name a path that the
   command can read, and a misconfigured configuration variable or
   an invalid command line option should trigger an error when the
   command needs to access it.
 - the value (not the variable) can say "I am optional--if the path
   does not appear on this system, or if it is unreadable, pretend
   as if this configuration variable or the command line option were
   not given".

The "when the command needs to" part is important. Ideally, "git log" should not fail when core.hookspath is misconfigured, because it does not trigger any hook, but it currently dies while parsing the configuration files in git_default_config():

 $ git -c core.hookspath log
 error: missing value for 'core.hookspath'
 fatal: unable to parse 'core.hookspath' from command-line config.

which we may want to fix. Unsurprisingly there are other variables that do behave correctly, like

 $ git -c core.pager --no-pager log -20 >/dev/null
 $ git -c core.pager log -20 >/dev/null
 error: missing value for 'core.pager'
 fatal: unable to parse command-line config

where a misconfigured core.pager does not cause any trouble when the pager is not in use.

Any of the above are not within the scope of this topic, obviously.
cf. <20241014204427.1712182-1-gitster@pobox.com>
Previous: Junio C HamanoNext: Justin Tobler
Message 40 of 41 in “propagate fsck message severity for bundle fetch”
  1. 0/5 propagate fsck message severity for bundle fetchJustin Tobler, Nov 21, 2024
  2. 1/5 bundle: add bundle verification options typeJustin Tobler, Nov 21, 2024
  3. Junio C HamanoNov 22, 2024
  4. Justin ToblerNov 22, 2024
  5. Patrick SteinhardtNov 26, 2024
  6. Justin ToblerNov 26, 2024
  7. 2/5 bundle: support fsck message configurationJustin Tobler, Nov 21, 2024
  8. Junio C HamanoNov 22, 2024
  9. Justin ToblerNov 22, 2024
  10. Junio C HamanoNov 25, 2024
  11. 3/5 fetch-pack: introduce `fetch_pack_options`Justin Tobler, Nov 21, 2024
  12. Junio C HamanoNov 22, 2024
  13. Junio C HamanoNov 22, 2024
  14. Justin ToblerNov 22, 2024
  15. 4/5 fetch-pack: expose `fetch_pack_config_cb()`Justin Tobler, Nov 21, 2024
  16. Junio C HamanoNov 22, 2024
  17. Justin ToblerNov 22, 2024
  18. shejialuoNov 22, 2024
  19. Justin ToblerNov 27, 2024
  20. 5/5 transport: propagate fsck configuration during bundle fetchJustin Tobler, Nov 21, 2024
  21. Junio C HamanoNov 22, 2024
  22. 0/4 propagate fsck message severity for bundle fetchJustin Tobler, Nov 27, 2024
  23. 1/4 bundle: add bundle verification options typeJustin Tobler, Nov 27, 2024
  24. 2/4 bundle: support fsck message configurationJustin Tobler, Nov 27, 2024
  25. Patrick SteinhardtNov 27, 2024
  26. 3/4 fetch-pack: split out fsck config parsingJustin Tobler, Nov 27, 2024
  27. Patrick SteinhardtNov 27, 2024
  28. Justin ToblerNov 27, 2024
  29. 4/4 transport: propagate fsck configuration during bundle fetchJustin Tobler, Nov 27, 2024
  30. Junio C HamanoNov 27, 2024
  31. 0/4 propagate fsck message severity for bundle fetchJustin Tobler, Nov 27, 2024
  32. 1/4 bundle: add bundle verification options typeJustin Tobler, Nov 27, 2024
  33. 2/4 bundle: support fsck message configurationJustin Tobler, Nov 27, 2024
  34. 3/4 fetch-pack: split out fsck config parsingJustin Tobler, Nov 27, 2024
  35. Junio C HamanoNov 28, 2024
  36. Patrick SteinhardtDec 3, 2024
  37. Justin ToblerDec 3, 2024
  38. Patrick SteinhardtDec 3, 2024
  39. Junio C HamanoDec 3, 2024
  40. Junio C HamanoDec 4, 2024
  41. 4/4 transport: propagate fsck configuration during bundle fetchJustin Tobler, Nov 27, 2024

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.