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

Re: [PATCH] config: Introduce GIT_CONFIG_NOGLOBAL

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Apr 8, 2021, 16:44 UTC
Message-ID
<CAPig+cT=xbftpV+k941ikkZR0RvQsXL6XA0Oono2_sDHsb5TTA@mail.gmail.com>
In-Reply-To
<a23382059bb57022dd1e40d1c2c9a11307b0ff3b.1617891426.git.ps@pks.im>
On Thu, Apr 8, 2021 at 10:18 AM Patrick Steinhardt <ps@pks.im> wrote:
Show 21 quoted lines
> While it's already possible to stop git from reading the system config
> via GIT_CONFIG_NOSYSTEM, doing the same for global config files requires
> the user to unset both HOME and XDG_CONFIG_HOME. This is an awkward
> interface and may even pose a problem e.g. when git hooks rely on these
> variables to be present.
>
> Introduce a new GIT_CONFIG_NOGLOBAL envvar, which is the simple
> equivalent to GIT_CONFIG_NOSYSTEM. If set to true, git will skip reading
> both `~/.gitconfig` and `$XDG_CONFIG_HOME/git/config`.
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> diff --git a/Documentation/git.txt b/Documentation/git.txt
> @@ -670,13 +670,21 @@ for further details.
> +`GIT_CONFIG_NOGLOBAL`::
> +       Whether to skip reading settings from the system-wide `~/.gitconfig`
> +       and `$XDG_CONFIG_HOME/git/config` files.  This environment variable can
> +       be used along with `$GIT_CONFIG_NOSYSTEM` to create a predictable
> +       environment for a picky script, or you can set it temporarily to avoid
> +       using a buggy global config file while waiting for someone with
> +       sufficient permissions to fix it.

Not necessarily a new problem since you mostly copied the new text from GIT_CONFIG_NOSYSTEM, but this doesn't tell the reader what value to assign to this variable. As currently written, I would end up having to consult the source code to figure out how to use this variable, which makes the documentation less useful than it should be. Perhaps it could be rewritten something like:

    If set to any value, suppress reading global configuration
    from `~/.gitconfig` and `$XDG_CONFIG_HOME/git/config`
    files. This environment variable...

The bit about waiting for someone to fix a buggy ~/.gitconfig is somewhat questionable; it might make sense to drop everything after "picky script".

Show 11 quoted lines
>  `GIT_CONFIG_NOSYSTEM`::
>         Whether to skip reading settings from the system-wide
>         `$(prefix)/etc/gitconfig` file.  This environment variable can
> -       be used along with `$HOME` and `$XDG_CONFIG_HOME` to create a
> -       predictable environment for a picky script, or you can set it
> -       temporarily to avoid using a buggy `/etc/gitconfig` file while
> -       waiting for someone with sufficient permissions to fix it.
> +       be used along with `$GIT_CONFIG_NOGLOBAL` to create a predictable
> +       environment for a picky script, or you can set it temporarily to avoid
> +       using a buggy `/etc/gitconfig` file while waiting for someone with
> +       sufficient permissions to fix it.

This suffers the same problem of not telling the reader what value to assign. A similar rewrite could improve it, as well.

Previous: Patrick SteinhardtNext: Junio C Hamano
Message 2 of 52 in “config: Introduce GIT_CONFIG_NOGLOBAL”
  1. config: Introduce GIT_CONFIG_NOGLOBALPatrick Steinhardt, Apr 8, 2021
  2. Eric SunshineApr 8, 2021
  3. Junio C HamanoApr 8, 2021
  4. Jeff KingApr 8, 2021
  5. Junio C HamanoApr 8, 2021
  6. Jeff KingApr 9, 2021
  7. Ævar Arnfjörð BjarmasonApr 8, 2021
  8. Ævar Arnfjörð BjarmasonApr 8, 2021
  9. Ævar Arnfjörð BjarmasonApr 8, 2021
  10. Junio C HamanoApr 8, 2021
  11. 0/3 config: allow overriding global/system configPatrick Steinhardt, Apr 9, 2021
  12. 1/3 config: rename `git_etc_config()`Patrick Steinhardt, Apr 9, 2021
  13. Jeff KingApr 9, 2021
  14. 2/3 config: unify code paths to get global config pathsPatrick Steinhardt, Apr 9, 2021
  15. Jeff KingApr 9, 2021
  16. 3/3 config: allow overriding of global and system configurationPatrick Steinhardt, Apr 9, 2021
  17. Jeff KingApr 9, 2021
  18. Patrick SteinhardtApr 12, 2021
  19. Junio C HamanoApr 9, 2021
  20. Jeff KingApr 9, 2021
  21. 0/3 config: allow overriding global/system configPatrick Steinhardt, Apr 12, 2021
  22. 1/3 config: rename `git_etc_config()`Patrick Steinhardt, Apr 12, 2021
  23. 2/3 config: unify code paths to get global config pathsPatrick Steinhardt, Apr 12, 2021
  24. 3/3 config: allow overriding of global and system configurationPatrick Steinhardt, Apr 12, 2021
  25. Junio C HamanoApr 12, 2021
  26. 0/3 config: allow overriding global/system configPatrick Steinhardt, Apr 13, 2021
  27. 1/3 config: rename `git_etc_config()`Patrick Steinhardt, Apr 13, 2021
  28. Jeff KingApr 13, 2021
  29. SZEDER GáborApr 16, 2021
  30. Jeff KingApr 17, 2021
  31. Junio C HamanoApr 17, 2021
  32. Jeff KingApr 18, 2021
  33. Patrick SteinhardtApr 19, 2021
  34. Jeff KingApr 23, 2021
  35. 2/3 config: unify code paths to get global config pathsPatrick Steinhardt, Apr 13, 2021
  36. 3/3 config: allow overriding of global and system configurationPatrick Steinhardt, Apr 13, 2021
  37. Jeff KingApr 13, 2021
  38. Patrick SteinhardtApr 13, 2021
  39. Jeff KingApr 13, 2021
  40. Junio C HamanoApr 13, 2021
  41. Patrick SteinhardtApr 14, 2021
  42. 0/3 config: allow overriding global/system configPatrick Steinhardt, Apr 19, 2021
  43. 1/3 config: rename `git_etc_config()`Patrick Steinhardt, Apr 19, 2021
  44. 2/3 config: unify code paths to get global config pathsPatrick Steinhardt, Apr 19, 2021
  45. 3/3 config: allow overriding of global and system configurationPatrick Steinhardt, Apr 19, 2021
  46. SZEDER GáborApr 21, 2021
  47. SZEDER GáborApr 21, 2021
  48. Patrick SteinhardtApr 22, 2021
  49. t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent testsPatrick Steinhardt, Apr 23, 2021
  50. Junio C HamanoApr 19, 2021
  51. Jeff KingApr 23, 2021
  52. config: allow overriding of global and system configurationPatrick Steinhardt, Apr 12, 2021

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.