[PATCH/RFC 0/5] Keep all info in command-list.txt in git binary
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Mar 26, 2018, 16:55 UTC
- Message-ID
- <20180326165520.802-1-pclouds@gmail.com>
This is pretty rough but I'd like to see how people feel about this first.
I notice we have two places for command classification. One in command-list.txt, one in __git_list_porcelain_commands() in git-completion.bash. People who are following nd/parseopt-completion probably know that I'm try to reduce duplication in this script as much as possible, this is another step towards that.
By keeping all information of command-list.txt in git binary, we could provide the porcelain list to git-completion.bash via "git --list-cmds=porcelain", so we don't neeed a separate command classification in git-completion.bash anymore.
Because we have all command synopsis as a side effect, we could now support "git help -a --verbose" which prints something like "git help", a command name and a description, but we could do it for _all_ recognized commands. This could help people look for a command even if we don't provide "git appropos".
PS. Elsewhere I introduced --list-builtin-cmds, which should become --list-cmds=builtin if this series seems like a good idea to move forward.
Nguyễn Thái Ngọc Duy (5): git.c: convert --list-builtins to --list-cmds=builtins git.c: implement --list-cmds=all and use it in git-completion.bash generate-cmdlist.sh: keep all information in common-cmds.h git.c: implement --list-cmds=porcelain help: add "-a --verbose" to list all commands with synopsis
Documentation/git-help.txt | 4 +- builtin/help.c | 6 ++ contrib/completion/git-completion.bash | 94 +----------------- generate-cmdlist.sh | 46 ++++++--- git.c | 11 ++- help.c | 131 +++++++++++++++++++++++-- help.h | 3 + t/t0012-help.sh | 2 +- t/t9902-completion.sh | 4 +- 9 files changed, 187 insertions(+), 114 deletions(-)
-- 2.17.0.rc0.348.gd5a49e0b6f