OSDN Git Service

Teach bash completion about 'git remote update'
authorShawn O. Pearce <spearce@spearce.org>
Thu, 24 May 2007 05:46:49 +0000 (01:46 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Thu, 24 May 2007 05:46:49 +0000 (01:46 -0400)
Recently the git-remote command grew an update subcommand, which
can be used to execute git-fetch across multiple repositories
in a single step.  These can be configured with the 'remotes.*'
configuration options, so we can offer completion for any name that
matches and appears to be useful to git-remote update.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
contrib/completion/git-completion.bash

index 48ba3f8..d625206 100755 (executable)
@@ -877,13 +877,13 @@ _git_remote ()
        while [ $c -lt $COMP_CWORD ]; do
                i="${COMP_WORDS[c]}"
                case "$i" in
-               add|show|prune) command="$i"; break ;;
+               add|show|prune|update) command="$i"; break ;;
                esac
                c=$((++c))
        done
 
        if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
-               __gitcomp "add show prune"
+               __gitcomp "add show prune update"
                return
        fi
 
@@ -891,6 +891,18 @@ _git_remote ()
        show|prune)
                __gitcomp "$(__git_remotes)"
                ;;
+       update)
+               local i c='' IFS=$'\n'
+               for i in $(git --git-dir="$(__gitdir)" config --list); do
+                       case "$i" in
+                       remotes.*)
+                               i="${i#remotes.}"
+                               c="$c ${i/=*/}"
+                               ;;
+                       esac
+               done
+               __gitcomp "$c"
+               ;;
        *)
                COMPREPLY=()
                ;;