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

Re: [PATCH 1/1] git-config: git-config --list fixed when GIT_CONFIG value starts with ~/

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Nov 14, 2014, 19:19 UTC
Message-ID
<CAPig+cTpUyfKYj4VTK1AT-ga6UvupJrERsTHWTEzNP-Ogc4ujQ@mail.gmail.com>
In-Reply-To
<1415989760-20259-1-git-send-email-kuleshovmail@gmail.com>
On Fri, Nov 14, 2014 at 1:29 PM, 0xAX <kuleshovmail@gmail.com> wrote:
Show 5 quoted lines
> When we execute git config --list and $GIT_CONFIG value starts with home
> prefix - ~/ it produces folowing error - fatal: unable to read config
> file '~/.gitconfig': No such file or directory. This patch fixed it with
> expand_user_path for configuration file path before git-config --list
> call.

Is this special case really warranted? Elsewhere, GIT_CONFIG does not get this sort of special treatment. Moreover, it appears that no other GIT_* environment variable is subject to such special treatment. (And, generally speaking, on Unix, it is generally assumed that a path assigned to an environment variable is to be used as-is.)

> Signed-off-by: Alex Kuleshov <kuleshovmail@gmial.com>
s/gmial/gmail/
Show 15 quoted lines
> Signed-off-by: 0xAX <kuleshovmail@gmail.com>
> ---
>  builtin/config.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/builtin/config.c b/builtin/config.c
> index 7bba516..df1bee0 100644
> --- a/builtin/config.c
> +++ b/builtin/config.c
> @@ -540,6 +540,8 @@ int cmd_config(int argc, const char **argv, const char *prefix)
>
>         if (actions == ACTION_LIST) {
>                 check_argc(argc, 0, 0);
> +               const char* newpath = expand_user_path(given_config_source.file);
> +               given_config_source.file = newpath;
A few issues:
(1) Style: s/char* /char */
(2) Avoid declaration (of 'newpath') after statement.

(3) You can drop 'newpath' altogether and just assign the result of expand_user_path() directly to given_config_source.file.

This code is potentially leaking the old value of given_config_source.file, and (later) the new value, however, as given_config_source.file is already being leaked elsewhere, it probably does not make the situation much worse.

Show 5 quoted lines
>                 if (git_config_with_options(show_all_config, NULL,
>                                             &given_config_source,
>                                             respect_includes) < 0) {
> --
> 2.1.3.17.g7fa1365.dirty
Previous: 0xAXNext: Jeff King
Message 2 of 6 in “git-config: git-config --list fixed when GIT_CONFIG value starts with ~/”
  1. 1/1 git-config: git-config --list fixed when GIT_CONFIG value starts with ~/0xAX, Nov 14, 2014
  2. Eric SunshineNov 14, 2014
  3. Jeff KingNov 14, 2014
  4. Alex KuleshovNov 14, 2014
  5. Jeff KingNov 14, 2014
  6. Junio C HamanoNov 14, 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.