This is part of the attempt to automate more in git-completion.bash. This series is about making 'git' binary provide the list of recognized configuration variables and feeding it to git-completion.bash. The approach is less than ideal. Unlike parse-options, we don't have a reliable source for configuration variables. Instead, we go grep config.txt for variable names. This should work most of the time even if it might miss some variables if we start to write funny things in config.txt. But compared to the current approach "every now and then, manually go through config.txt (or something) and update _git_config() function", this is still definitely better. The result is about 200 more completable options (from current 324). Granted most of this is fsck message ids, but I'm sure it has picked up a few good config variables and will continue so in the future. While at there, this config list is also available to the user via `git help --config` if you can't remember the exact config name you want and don't want to go through that big git-config man page. PS. Yes too many complete options (524 now) is not that helpful. I have a plan to deal with this but probably after I'm done with the --no-xxx completion topic. Stay tuned. (on top of nd/command-list) Nguyễn Thái Ngọc Duy (9): Add and use generic name->id mapping code for color slot parsing grep: keep all colors in an array fsck: factor out msg_id_info[] lazy initialization code help: add --config to list all available config advice: keep config name in camelCase in advice_config[] am: move advice.amWorkDir parsing back to advice.c completion: drop the hard coded list of config vars completion: support case-insensitive config vars just a bit log-tree: allow to customize 'grafted' color Documentation/config.txt | 3 +- Documentation/git-help.txt | 5 + advice.c | 51 ++-- advice.h | 1 + builtin/am.c | 5 +- builtin/branch.c | 28 +- builtin/clean.c | 28 +- builtin/commit.c | 40 +-- builtin/help.c | 14 + config.c | 13 + config.h | 4 + contrib/completion/git-completion.bash | 340 +------------------------ diff.c | 60 ++--- fsck.c | 49 ++-- generate-cmdlist.sh | 20 ++ grep.c | 113 ++++---- grep.h | 21 +- help.c | 74 ++++++ help.h | 18 ++ log-tree.c | 36 +-- t/t4254-am-corrupt.sh | 2 +- 21 files changed, 387 insertions(+), 538 deletions(-) -- 2.17.0.705.g3525833791