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

Re: Local unset override global options

From
SHStefan Hajnoczi <stefanha@gmail.com>
Date
Apr 12, 2010, 16:07 UTC
Message-ID
<m2jfbd9d3991004120907k66951cf0y149097153fe3229a@mail.gmail.com>
In-Reply-To
<7vtyrgllje.fsf@alter.siamese.dyndns.org>
On Mon, Apr 12, 2010 at 4:48 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> Stefan Hajnoczi <stefanha@gmail.com> writes:
>
>> That would work but introduces a special case for smtpuser.  Do you
>> think users may wish to unset override other options too?
>
> I would indeed agree "users may _wish_ to", but that does not matter as
> much as "users _need_ to, otherwise they cannot do X and Y and Z".
>
> You seem to think from the beginning of this thread that "empty means I
> don't want it" is a hacky special case that is limited to this smtpuser
> variable, but I do not share that view.  Not at all.
Show 15 quoted lines
> There are two rather big reasons we would want to stick to the current
> format without introducing "unset".  At least we would want to try to
> until we find real need that justifies such a change.
>
>  - We could introduce a backward incompatible change to the configuration
>   file format to say "This variable is not set at all", but once somebody
>   starts using the syntax in his .git/config (or worse $HOME/.gitconfig),
>   that repository cannot be used by older version of git anymore.
>
>  - Also internally our variables are never "unset".  Behaviour of a
>   plumbing or Porcelain command implemented in C is controlled by
>   variables in C, and the contents of the configuration files overwrite
>   these variables as they are parsed from the least specific (system) to
>   the most specific.  The best you can do is "reset to default" (not
>   "unset"), and even that involves fair amount of change.

Knowing that variables are never unset internally gives me a different perspective. Thanks for the explanation.

Stefan
Previous: Junio C Hamano
Message 14 of 14 in “Local unset override global options”
  1. Stefan HajnocziApr 10, 2010
  2. Michael J GruberApr 12, 2010
  3. Stefan HajnocziApr 12, 2010
  4. Michael J GruberApr 12, 2010
  5. Jakub NarebskiApr 12, 2010
  6. Junio C HamanoApr 12, 2010
  7. Jakub NarebskiApr 12, 2010
  8. Junio C HamanoApr 12, 2010
  9. Erik Faye-LundApr 12, 2010
  10. Jakub NarebskiApr 12, 2010
  11. Junio C HamanoApr 12, 2010
  12. Stefan HajnocziApr 12, 2010
  13. Junio C HamanoApr 12, 2010
  14. Stefan HajnocziApr 12, 2010

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.