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

Re: [PATCH/RFC 0/5] add "unset.variable" for unsetting previously set variables

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 8, 2014, 17:14 UTC
Message-ID
<xmqqy4sqbi12.fsf@gitster.dls.corp.google.com>
In-Reply-To
<vpqzjd7kta6.fsf@anie.imag.fr>
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
Show 37 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Jakub Narębski <jnareb@gmail.com> writes:
>>
>>> Junio C Hamano wrote:
>>>
>>>>   - "[config] safe = section.variable" will list variables that can
>>>>     be included with the config.safeInclude mechanism.  Any variable
>>>>     that is not marked as config.safe that appears in the file
>>>>     included by the config.safeInclude mechanism will be ignored.
>>>
>>> Why user must know which variables are safe, why it cannot be left to
>>> Git to know which configuration variables can call external scripts?
>>
>> That's a fallback to let them take responsibility for variables we
>> do not mark as "safe"; and having that fallback mechanism lets us
>> keep the set of variables we by default mark as safe to the absolute
>> minimum.
>
> Perhaps this would need a way to say "this value is safe for this
> variable" too. I don't have a real use-case, but one could say something
> like "I'm OK with the file overriding core.editor, but the only values I
> accept are nano, vim and emacs".
>
> It doesn't seem to be a prerequisite to implement the safeInclude
> feature, but we should live room in the namespace for the day we want to
> add it.
>
> I don't have really good idea for it. The first I could think of was
>
> [config "safe"]
>     core.editor = nano
>     core.editor = vim
>     core.editor = emacs
>
> but it's not accepted by the current parser, hence not backward
> compatible.

Interesting thought (I've cc'ed Rasmus who did an RFC patchset on the safe include feature). I do not offhand think of a good example of an variable that we may want to allow overriding but still want to limit its values myself. Almost all variables I would rather not to see in-tree .gitconfig to touch at all, and the ones that I may want to allow to be futzed with I can think of offhand are booleans. With more people and time we might find a better example to illustrate why we may want to have such a feature added.

Thanks.
Previous: Matthieu MoyNext: Matthieu Moy
Message 26 of 30 in “add "unset.variable" for unsetting previously set variables”
  1. 0/5 add "unset.variable" for unsetting previously set variablesTanay Abhra, Oct 2, 2014
  2. 1/5 config.c : move configset_iter() to an appropriate positionTanay Abhra, Oct 2, 2014
  3. 2/5 make git_config_with_options() to use a configsetTanay Abhra, Oct 2, 2014
  4. 3/5 add "unset.variable" for unsetting previously set variablesTanay Abhra, Oct 2, 2014
  5. 4/5 document the new "unset.variable" variableTanay Abhra, Oct 2, 2014
  6. 5/5 add tests for checking the behaviour of "unset.variable"Tanay Abhra, Oct 2, 2014
  7. Junio C HamanoOct 2, 2014
  8. Tanay AbhraOct 2, 2014
  9. Junio C HamanoOct 2, 2014
  10. Tanay AbhraOct 2, 2014
  11. Junio C HamanoOct 2, 2014
  12. Matthieu MoyOct 3, 2014
  13. Junio C HamanoOct 3, 2014
  14. Junio C HamanoOct 3, 2014
  15. Matthieu MoyOct 3, 2014
  16. Junio C HamanoOct 3, 2014
  17. Tanay AbhraOct 6, 2014
  18. Junio C HamanoOct 6, 2014
  19. Tanay AbhraOct 6, 2014
  20. Junio C HamanoOct 2, 2014
  21. Jeff KingOct 2, 2014
  22. Junio C HamanoOct 2, 2014
  23. Jakub NarębskiOct 7, 2014
  24. Junio C HamanoOct 7, 2014
  25. Matthieu MoyOct 8, 2014
  26. Junio C HamanoOct 8, 2014
  27. Matthieu MoyOct 8, 2014
  28. Junio C HamanoOct 8, 2014
  29. Jeff KingOct 10, 2014
  30. Junio C HamanoOct 13, 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.