Merge branch 'maint' of git://repo.or.cz/git-gui into maint
[gitweb.git] / contrib / completion / git-completion.bash
index 430e6367a7d944f59a986df442e389d27f41927c..7c03403484f3a52c9588aa3bfc58dea4f394dabe 100755 (executable)
@@ -269,7 +269,7 @@ __git_commands ()
                cvsimport)        : import;;
                cvsserver)        : daemon;;
                daemon)           : daemon;;
-               diff-stages)      : nobody uses it;;
+               fast-import)      : import;;
                fsck-objects)     : plumbing;;
                fetch-pack)       : plumbing;;
                fmt-merge-msg)    : plumbing;;
@@ -297,7 +297,6 @@ __git_commands ()
                reflog)           : plumbing;;
                repo-config)      : plumbing;;
                rerere)           : plumbing;;
-               resolve)          : dead dont use;;
                rev-list)         : plumbing;;
                rev-parse)        : plumbing;;
                runstatus)        : plumbing;;
@@ -675,7 +674,7 @@ _git_push ()
 _git_rebase ()
 {
        local cur="${COMP_WORDS[COMP_CWORD]}"
-       if [ -d .dotest ]; then
+       if [ -d .dotest ] || [ -d .git/.dotest-merge ]; then
                __gitcomp "--continue --skip --abort"
                return
        fi
@@ -852,6 +851,32 @@ _git_config ()
        "
 }
 
+_git_remote ()
+{
+       local i c=1 command
+       while [ $c -lt $COMP_CWORD ]; do
+               i="${COMP_WORDS[c]}"
+               case "$i" in
+               add|show|prune) command="$i"; break ;;
+               esac
+               c=$((++c))
+       done
+
+       if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
+               __gitcomp "add show prune"
+               return
+       fi
+
+       case "$command" in
+       show|prune)
+               __gitcomp "$(__git_remotes)"
+               ;;
+       *)
+               COMPREPLY=()
+               ;;
+       esac
+}
+
 _git_reset ()
 {
        local cur="${COMP_WORDS[COMP_CWORD]}"
@@ -934,6 +959,7 @@ _git ()
        pull)        _git_pull ;;
        push)        _git_push ;;
        rebase)      _git_rebase ;;
+       remote)      _git_remote ;;
        reset)       _git_reset ;;
        show)        _git_show ;;
        show-branch) _git_log ;;
@@ -979,6 +1005,7 @@ complete -o default -o nospace -F _git_pull git-pull
 complete -o default -o nospace -F _git_push git-push
 complete -o default -o nospace -F _git_rebase git-rebase
 complete -o default -o nospace -F _git_config git-config
+complete -o default -o nospace -F _git_remote git-remote
 complete -o default -o nospace -F _git_reset git-reset
 complete -o default -o nospace -F _git_show git-show
 complete -o default -o nospace -F _git_log git-show-branch