Le samedi 19 janvier 2013 08:52:25, Junio C Hamano a écrit : > (2) instead of being inclusive, collecting all executable in > GIT_EXEC_PATH that happens to be named "git-", add a mode to > "git help" that lists those that we know to be standard > commands that the users may want to complete from the command > line. Am I wrong when I say that "git help -a" already provides the difference between core git commands and other commands available through path? If we use this, then we can instruct git-completion that we are in test mode and that it should not provide additional completions. --- contrib/completion/git-completion.bash | 13 +++++++++++-- t/t9902-completion.sh | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git- completion.bash index 14dd5e7..dc0ea5b 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -23,6 +23,8 @@ # 3) Consider changing your PS1 to also show the current branch, # see git-prompt.sh for details. +__testing_git=$1 + case "$COMP_WORDBREAKS" in *:*) : great ;; *) COMP_WORDBREAKS="$COMP_WORDBREAKS:" @@ -533,8 +535,15 @@ __git_complete_strategy () __git_list_all_commands () { - local i IFS=" "$'\n' - for i in $(git help -a|egrep '^ [a-zA-Z0-9]') + local i cmdlist IFS=" "$'\n' + + if [ "x$__testing_git" != "xTEST" ]; then + cmdlist=$(git help -a|egrep '^ [a-zA-Z0-9]') + else + cmdlist=$(git help -a| egrep -m 1 -B1000 PATH | egrep '^ [a-zA-Z0-9]') + fi + + for i in $cmdlist do case $i in *--*) : helper pattern;; diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 3cd53f8..51463b2 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -13,7 +13,7 @@ complete () return 0 } -. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" +. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash" TEST # We don't need this function to actually join words or do anything special. # Also, it's cleaner to avoid touching bash's internal completion variables. -- 1.8.1.1.271.g02f55e6 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html