config: add back code comment
cover config: add back code comment
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.
🔗 series: https://lore.kernel.org/git/[email protected]/
🔗 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(+)
Signature · 1 line
2.43.0
PATCH 1/1 config: add back code comment
c15129b699 (config: factor out global config file retrieval, 2024-01-18) was a refactor that moved some of the code in this function to config.c. However, in the process I managed to drop this code comment which explains $HOME not set.
--- builtin/config.c | 6 ++++++ 1 file changed, 6 insertions(+)
builtin/config.c +6 -0
@@ -710,6 +710,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)if (use_global_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 +* location; error out even if XDG_CONFIG_HOME +* is set and points at a sane location. +*/ die (_ ("$HOME not set" )); given_config_source.scope =CONFIG_SCOPE_GLOBAL ; }else if (use_system_config) {
Signature · 1 line
2.43.0
Quoted 17 lines · Kristoffer Haugsbakk
c15129b699(config: factor out global config file retrieval, 2024-01-18) was a refactor that moved some of the code in this function toconfig.c. However, in the process I managed to drop this code comment which explains$HOME not set.Signed-off-by Kristoffer Haugsbakk <[email protected]>--- builtin/config.c | 6 ++++++ 1 file changed, 6 insertions(+)builtin/config.c +0
-0@@ -710,6 +710,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)if (use_global_config) { given_config_source.file =git_global_config ();
builtin/config.c int cmd_config(int argc, const char **argv, const char *prefix) · line 721
Quoted 10 lines
builtin/config.c +6
-0if (!given_config_source.file) +/* +* It is unknown if HOME/.gitconfig exists, so +* we do not know if we should write to XDG +* location; error out even if XDG_CONFIG_HOME +* is set and points at a sane location. +*/ die (_ ("$HOME not set" )); given_config_source.scope =CONFIG_SCOPE_GLOBAL ; }else if (use_system_config) {
Thanks for adding the comment back in! The patch looks good to me.
Patrick
Quoted 4 lines · Patrick Steinhardt
Quoted 4 lines
builtin/config.c +3
-0if (!given_config_source.file) +/* +* It is unknown if HOME/.gitconfig exists, so +* we do not know if we should write to XDG
Quoted 8 lines
builtin/config.c int cmd_config(int argc, const char **argv, const char *prefix) · line 721
Quoted 6 lines
builtin/config.c +3
-0+* location; error out even if XDG_CONFIG_HOME +* is set and points at a sane location. +*/ die (_ ("$HOME not set" )); given_config_source.scope =CONFIG_SCOPE_GLOBAL ; }else if (use_system_config) {Thanks for adding the comment back in! The patch looks good to me.
Yeah, thanks, both.
v2 cover config: add back code comment
In reply to Kristoffer HaugsbakkThis 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.
See the cover letter on the first version for the diff when I squash this patch into c15129b699 (config: factor out global config file retrieval, 2024-01-18).
Sorry about the churn.
§ Changes in v2
Add an ack trailer.
This is the (tentative) final version. I read (interpreted) SubmittingPatches as saying that the final version should be sent, even though it’s just to add an additional trailer. I’m open for feedback on the submission process of course.
I’ve added it after my signoff since it seems preferred to maintain the chronology (although in this case either choice seems equally clear). Also it seemed more common in the recent Git log.
🔗 series: https://lore.kernel.org/git/[email protected]/
🔗 1: https://lore.kernel.org/git/147c767443c35b3b4a5516bf40557f41bb201078.1697660181.git.code@khaugsbakk.name/
🔗 2: https://lore.kernel.org/git/32e5ec7d866ff8fd26554b325812c6e19cb65126.1705267839.git.code@khaugsbakk.name/
Kristoffer Haugsbakk (1):
config: add back code comment
builtin/config.c | 6 ++++++ 1 file changed, 6 insertions(+)
Range-diff against v1:
1: 48d66e94ec ! 1: 24f536d575 config: add back code comment
@@ Commit message
which explains $HOME not set.
+ Acked-by: Patrick Steinhardt <[email protected]>
## builtin/config.c ##
@@ builtin/config.c: int cmd_config(int argc, const char **argv, const char *prefix)
Signature · 1 line
2.43.0
PATCH v2 1/1 config: add back code comment
c15129b699 (config: factor out global config file retrieval, 2024-01-18) was a refactor that moved some of the code in this function to config.c. However, in the process I managed to drop this code comment which explains $HOME not set.
--- builtin/config.c | 6 ++++++ 1 file changed, 6 insertions(+)
builtin/config.c +6 -0
@@ -710,6 +710,12 @@ int cmd_config(int argc, const char **argv, const char *prefix)if (use_global_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 +* location; error out even if XDG_CONFIG_HOME +* is set and points at a sane location. +*/ die (_ ("$HOME not set" )); given_config_source.scope =CONFIG_SCOPE_GLOBAL ; }else if (use_system_config) {
Signature · 1 line
2.43.0