From: SZEDER Gábor Date: Fri, 3 Feb 2017 02:48:21 +0000 (+0100) Subject: completion: don't offer commands when 'git --opt' needs an argument X-Git-Tag: v2.13.0-rc0~46^2~23 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7b329b9dab276d7a90141a1c9260a6943c9dd007;p=git-core%2Fgit.git completion: don't offer commands when 'git --opt' needs an argument The main git options '--git-dir', '-c', '-C', '--worktree' and '--namespace' require an argument, but attempting completion right after them lists git commands. Don't offer anything right after these options, thus let Bash fall back to filename completion, because - the three options '--git-dir', '-C' and '--worktree' do actually require a path argument, and - we don't complete the required argument of '-c' and '--namespace', and in that case the "standard" behavior of our completion script is to not offer anything, but fall back to filename completion. Signed-off-by: SZEDER Gábor Signed-off-by: Junio C Hamano --- diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index f59755d06..92231c66d 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2808,6 +2808,17 @@ __git_main () done if [ -z "$command" ]; then + case "$prev" in + --git-dir|-C|--work-tree) + # these need a path argument, let's fall back to + # Bash filename completion + return + ;; + -c|--namespace) + # we don't support completing these options' arguments + return + ;; + esac case "$cur" in --*) __gitcomp " --paginate