From: Cornelius Weig <cornelius.weig@xxxxxxxxxxx> This is the re-roll of patch series <20170122225724.19360-1-cornelius.weig@xxxxxxxxxxx>. This patch series adds all long-options that are mentioned in the synopsis of the man-page for the respective git-command. There are only a few exceptions, as discussed in the above thread. For example, no unsafe options should be completed. Furthermore, the patches add subommand option completion for git-submodule and git-remote. Changes wrt first submission: - improve completion for git-remote set-head & set-branches - remove completion of unsafe options - improve commit messages - added sign-off :) - rebase to current master Cornelius Weig (7): completion: teach submodule subcommands to complete options completion: add subcommand completion for rerere completion: improve bash completion for git-add completion: teach ls-remote to complete options completion: teach replace to complete options completion: teach remote subcommands to complete options completion: recognize more long-options contrib/completion/git-completion.bash | 139 ++++++++++++++++++++++++++++----- 1 file changed, 118 insertions(+), 21 deletions(-) Interdiff since first iteration: diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 87d3d2c..3545f6a 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -936,7 +936,7 @@ _git_apply () --apply --no-add --exclude= --ignore-whitespace --ignore-space-change --whitespace= --inaccurate-eof --verbose - --recount --directory= --unsafe-paths + --recount --directory= " return esac @@ -1459,7 +1459,7 @@ _git_ls_remote () { case "$cur" in --*) - __gitcomp "--heads --tags --refs --get-url" + __gitcomp "--heads --tags --refs --get-url --symref" return ;; esac @@ -2415,9 +2415,18 @@ _git_remote () ;; add,*) ;; + set-head,--*) + __gitcomp "--auto --delete" + ;; + set-branches,--*) + __gitcomp "--add" + ;; set-head,*|set-branches,*) __git_complete_remote_or_refspec ;; + update,--*) + __gitcomp "--prune" + ;; update,*) __gitcomp "$(__git_get_config_variables "remotes")" ;; @@ -2494,7 +2503,7 @@ _git_rm () { case "$cur" in --*) - __gitcomp "--cached --dry-run --ignore-unmatch --quiet --force" + __gitcomp "--cached --dry-run --ignore-unmatch --quiet" return ;; esac -- 2.10.2