On Mon, Jan 29, 2024 at 01:28:00PM +0000, Philippe Blain via GitGitGadget wrote: > From: Philippe Blain <levraiphilippeblain@xxxxxxxxx> > > There is currently no machine-friendly way to show _all_ configuration > variables from the command line. 'git help --config' does show them all, > but it also sets up the pager. 'git help --config-for-completion' omits > some variables (those containing wildcards, for example) and 'git help > --config-section-for-completion' shows only top-level section names. You can invoke `git --no-pager help --config` so that Git does not set up the pager. Is there a reason why we can't use that? > In a following commit we will want to have access to a list of all > configuration variables from the Bash completion script. As such, add a > new mode for the command, HELP_ACTION_CONFIG_ALL_FOR_COMPLETION, > triggered by the new option '--config-all-for-completion'. In this mode, > show all variables, just as HELP_ACTION_CONFIG, but do not set up the > pager. > > Signed-off-by: Philippe Blain <levraiphilippeblain@xxxxxxxxx> > --- > builtin/help.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/builtin/help.c b/builtin/help.c > index dc1fbe2b986..dacaeb10bf4 100644 > --- a/builtin/help.c > +++ b/builtin/help.c > @@ -50,6 +50,7 @@ static enum help_action { > HELP_ACTION_DEVELOPER_INTERFACES, > HELP_ACTION_CONFIG_FOR_COMPLETION, > HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION, > + HELP_ACTION_CONFIG_ALL_FOR_COMPLETION, > } cmd_mode; > > static const char *html_path; > @@ -86,6 +87,8 @@ static struct option builtin_help_options[] = { > HELP_ACTION_CONFIG_FOR_COMPLETION, PARSE_OPT_HIDDEN), > OPT_CMDMODE_F(0, "config-sections-for-completion", &cmd_mode, "", > HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION, PARSE_OPT_HIDDEN), > + OPT_CMDMODE_F(0, "config-all-for-completion", &cmd_mode, "", > + HELP_ACTION_CONFIG_ALL_FOR_COMPLETION, PARSE_OPT_HIDDEN), > > OPT_END(), > }; > @@ -670,6 +673,10 @@ int cmd_help(int argc, const char **argv, const char *prefix) > opt_mode_usage(argc, "--config-for-completion", help_format); > list_config_help(SHOW_CONFIG_VARS); > return 0; > + case HELP_ACTION_CONFIG_ALL_FOR_COMPLETION: > + opt_mode_usage(argc, "--config-all-for-completion", help_format); > + list_config_help(SHOW_CONFIG_HUMAN); > + return 0; > case HELP_ACTION_USER_INTERFACES: > opt_mode_usage(argc, "--user-interfaces", help_format); > list_user_interfaces_help(); We should add a testcase to "t0012-help.sh" to exercise this new feature. That would also help show the reviewer what exactly it will end up printing. Patrick
Attachment:
signature.asc
Description: PGP signature