1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #compdef git-remote
- # NOTE: --track is undocumented.
- # TODO: --track, -t, --master, and -m should take remote branches, I guess.
- # NOTE: --master is undocumented.
- # NOTE: --fetch is undocumented.
- _git-remote () {
- local curcontext=$curcontext state line
- declare -A opt_args
- _arguments -C \
- ':command:->command' \
- '*::options:->options' && ret=0
- case $state in
- (command)
- declare -a commands
- commands=(
- 'add:add a new remote'
- 'show:show information about a given remote'
- 'prune:delete all stale tracking branches for a given remote'
- 'update:fetch updates for a set of remotes'
- 'rm:remove a remote from .git/config and all associated tracking branches'
- 'rename:rename a remote from .git/config and update all associated tracking branches'
- 'set-head:sets or deletes the default branch'
- 'set-branches:changes the list of branches tracked by the named remote.'
- 'set-url:changes URL remote points to.'
- )
- _describe -t commands 'sub-command' commands && ret=0
- ;;
- (options)
- case $line[1] in
- (add)
- _arguments \
- '*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
- '(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
- '(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
- ':branch name:__git_remotes' \
- ':url:_urls' && ret=0
- ;;
- (show)
- _arguments \
- '-n[do not contact the remote for a list of branches]' \
- ':remote:__git_remotes' && ret=0
- ;;
- (prune)
- _arguments \
- '(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
- ':remote:__git_remotes' && ret=0
- ;;
- (update)
- __git_remote-groups && ret=0
- ;;
- (rm)
- __git_remotes && ret=0
- ;;
- (rename)
- __git_remotes && ret=0
- ;;
- (set-url)
- _arguments \
- '*--push[manipulate push URLs]' \
- '(--add)--add[add URL]' \
- '(--delete)--delete[delete URLs]' \
- ':branch name:__git_remotes' \
- ':url:_urls' && ret=0
- ;;
-
- esac
- ;;
- esac
- }
|