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

[PATCH 0/1] config: add back code comment

From
Kristoffer Haugsbakk <code@khaugsbakk.name>
Date
Jan 28, 2024, 18:31 UTC
Message-ID
<cover.1706466321.git.code@khaugsbakk.name>

This is a follow-up to the kh/maintenance-use-xdg-when-it-should [series] which was merged in 12ee4ed506 (Merge branch 'kh/maintenance-use-xdg-when-it-sho.., 2024-01-26).

I dropped a code comment while iterating on a refactor. It still makes as much sense in this context as before the refactor (it’s a _refactor_ in the sense of “don’t change code behavior”).

The code comment was moved to `config.c` in patch v1 3/4.[1] But review feedback said that this comment didn’t fit in this new place and that we shouldn’t `die()` in `git_global_config`. So in v2 3/4[2] I removed the comment in `git_global_config`. But I forgot to put the comment back to its original place, where it still makes as much sense as before my series.

[Here] is the diff when I squash this patch into c15129b699 (config: factor out global config file retrieval, 2024-01-18).

Sorry about the churn.
Cc: ps@pks.im

🔗 series: https://lore.kernel.org/git/cover.1697660181.git.code@khaugsbakk.name/ 🔗 1: https://lore.kernel.org/git/147c767443c35b3b4a5516bf40557f41bb201078.1697660181.git.code@khaugsbakk.name/ 🔗 2: https://lore.kernel.org/git/32e5ec7d866ff8fd26554b325812c6e19cb65126.1705267839.git.code@khaugsbakk.name/ † Here:

    diff --git a/builtin/config.c b/builtin/config.c
    index 6fff265581..b55bfae7d6 100644
    --- a/builtin/config.c
    +++ b/builtin/config.c
    @@ -708,10 +708,8 @@ int cmd_config(int argc, const char **argv, const char *prefix)
            }
            if (use_global_config) {
    -		char *user_config, *xdg_config;
    -
    -		git_global_config_paths(&user_config, &xdg_config);
    -		if (!user_config)
    +		given_config_source.file = git_global_config();
    +		if (!given_config_source.file)
                            /*
                             * It is unknown if HOME/.gitconfig exists, so
                             * we do not know if we should write to XDG
    @@ -719,19 +717,8 @@ int cmd_config(int argc, const char **argv, const char *prefix)
                             * is set and points at a sane location.
                             */
                            die(_("$HOME not set"));
    -
                    given_config_source.scope = CONFIG_SCOPE_GLOBAL;
    -
    -		if (access_or_warn(user_config, R_OK, 0) &&
    -		    xdg_config && !access_or_warn(xdg_config, R_OK, 0)) {
    -			given_config_source.file = xdg_config;
    -			free(user_config);
    -		} else {
    -			given_config_source.file = user_config;
    -			free(xdg_config);
    -		}
    -	}
    -	else if (use_system_config) {
    +	} else if (use_system_config) {
                    given_config_source.file = git_system_config();
                    given_config_source.scope = CONFIG_SCOPE_SYSTEM;
            } else if (use_local_config) {
    diff --git a/config.c b/config.c
    index ebc6a57e1c..3cfeb3d8bd 100644
    --- a/config.c
    +++ b/config.c
    @@ -1987,6 +1987,26 @@ char *git_system_config(void)
            return system_config;
     }
    +char *git_global_config(void)
    +{
    +	char *user_config, *xdg_config;
    +
    +	git_global_config_paths(&user_config, &xdg_config);
    +	if (!user_config) {
    +		free(xdg_config);
    +		return NULL;
    +	}
    +
    +	if (access_or_warn(user_config, R_OK, 0) && xdg_config &&
    +	    !access_or_warn(xdg_config, R_OK, 0)) {
    +		free(user_config);
    +		return xdg_config;
    +	} else {
    +		free(xdg_config);
    +		return user_config;
    +	}
    +}
    +
     void git_global_config_paths(char **user_out, char **xdg_out)
     {
            char *user_config = xstrdup_or_null(getenv("GIT_CONFIG_GLOBAL"));
    diff --git a/config.h b/config.h
    index e5e523553c..5dba984f77 100644
    --- a/config.h
    +++ b/config.h
    @@ -382,6 +382,7 @@ int config_error_nonbool(const char *);
     #endif
     char *git_system_config(void);
    +char *git_global_config(void);
     void git_global_config_paths(char **user, char **xdg);
     int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
Kristoffer Haugsbakk (1):
  config: add back code comment
 builtin/config.c | 6 ++++++
 1 file changed, 6 insertions(+)
-- 
2.43.0
Next: Kristoffer Haugsbakk
Message 1 of 6 in “config: add back code comment”
  1. 0/1 config: add back code commentKristoffer Haugsbakk, Jan 28, 2024
  2. 1/1 config: add back code commentKristoffer Haugsbakk, Jan 28, 2024
  3. Patrick SteinhardtJan 29, 2024
  4. Junio C HamanoJan 29, 2024
  5. 0/1 config: add back code commentKristoffer Haugsbakk, Jan 29, 2024
  6. 1/1 config: add back code commentKristoffer Haugsbakk, Jan 29, 2024

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.