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

Re: [PATCH/RFC 5/5] add tests for checking the behaviour of "unset.variable"

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Oct 3, 2014, 07:01 UTC
Message-ID
<vpqeguptz5k.fsf@anie.imag.fr>
In-Reply-To
<xmqqiok2m494.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
> Tanay Abhra <tanayabh@gmail.com> writes:
>
>> I can think of two solutions, one leave it as it is and advertise it to be
>> explicitly typed in the config files at the appropriate position or to change
>> the behavior of unset.variable to unset all matching variables in that file,
>> before and after. We could also change git config --add to append at the end
>> of the file regardless the variable exists or not. Which course of action
>> do you think would be best?
>
> Off the top of my head, from an end-user's point of view, something
> like this would give a behaviour that is at least understandable:
>
>  (1) forbid "git config" command line from touching "unset.var", as
>      there is no way for a user to control where a new unset.var
>      goes.  And

Well, the normal use-case for unset.variable is to put it in a local config file, to unset a variable set in another, lower-priority file.

This common use-case works with the command-line "git config", and it would be a pity to forbid the common use-case because of a particular, unusual case.

>  (2) When adding or appending section.var (it may also apply to
>      removing one--you need to think about it deeper), ignore
>      everything that comes before the last appearance of "unset.var"
>      that unsets the "section.var" variable.

That would probably be the best option from a user's point of view, but I'd say the implementation complexity is not worth the trouble.

Show 12 quoted lines
> Alternatively, if the syntax to unset a "section.var" were not
>
> 	[unset]
>         	variable = section.var
>
> but rather
>
> 	[section]
> 		! variable
>
> or soemthing, then the current "find the section and append at the
> end" code may work as-is.

But that would break backward compatibility rather badly: old git's would stop working completely in repositories using this syntax.

Well, perhaps we can also consider that this is acceptable: just don't use the feature for a few years if you care about backward compatibility.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Junio C HamanoNext: Junio C Hamano
Message 12 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.