On Tue, Jul 11, 2017 at 03:49:21PM +0100, Peter Krefting wrote:
> That's fine. However, when trying to look for help, it is not that useful:
>
> $ git config --help
> error: malformed value for branch.autosetuprebase
> fatal: bad config variable 'branch.autosetuprebase' in file '.git/config'
> at line 24
>
> Perhaps it should allow "--help" to go through even if the configuration is
> bad?
Yes, I agree the current behavior is poor. What's happening under the
hood is that "--help" for any command runs "git help config", which in
turn looks at the config to pick up things like help.format.
But it also loads git_default_config(), which I suspect isn't actually
useful. It goes all the way back to 70087cdbd (git-help: add
"help.format" config variable., 2007-12-15), and it looks like it was
probably added just to match other config callbacks.
So I think we could probably just do this:
diff --git a/builtin/help.c b/builtin/help.c
index 334a8494a..c42dfc9e9 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -273,7 +273,7 @@ static int git_help_config(const char *var, const char
*value, void *cb)
if (starts_with(var, "man."))
return add_man_viewer_info(var, value);
- return git_default_config(var, value, cb);
+ return 0;
}
static struct cmdnames main_cmds, other_cmds;
which makes your case work.
-Peff