- # completion for cdremote - list remotes with directories as URLs
- _cdremote_complete() {
- local cur="${COMP_WORDS[COMP_CWORD]}";
- list_remotes '^\(/\|\.\./\)' # (/ or ../ at the beginning)
- COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
- unset GIT_REMOTES
- }
-
- complete -F _cdremote_complete cdremote
-
- # completion for git-open - list remotes with http(s) URLs
- _git_open() {
- local cur="${COMP_WORDS[COMP_CWORD]}";
- list_remotes '^http\(s\)\?://'
- COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
- unset GIT_REMOTES
- }
-
- complete -F _git_open git-open
+ if test -n "$BASH_VERSION"; then
+ # completion for global aliases in .gitconfig
+ # fixup rbi rbia rbiap rbip - delegate to git-rebase completion
+
+ _git_fixup() { _git_rebase ; }
+ _git_rbi() { _git_rebase ; }
+ _git_rbia() { _git_rebase ; }
+ _git_rbiap() { _git_rebase ; }
+ _git_rbip() { _git_rebase ; }
+
+ # list remotes with URLs matching a regexp
+ _list_remotes() {
+ GIT_REMOTES=""
+ local remote
+ for remote in `git remote`; do
+ if git config --get remote.$remote.url | grep -q "$1"; then
+ GIT_REMOTES="$GIT_REMOTES $remote"
+ fi
+ done
+ }
+
+ # completion for cdremote and git-open - list remotes with a pattern
+ _list_remotes_completion() {
+ local cur="${COMP_WORDS[COMP_CWORD]}";
+ _list_remotes "$1"
+ COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
+ unset GIT_REMOTES
+ }
+
+ # completion for cdremote - list remotes with directories as URLs
+ _cdremote_complete() {
+ _list_remotes_completion '^\(/\|\.\./\)' # (/ or ../ at the beginning)
+ }
+
+ complete -F _cdremote_complete cdremote
+
+ # completion for git-open - list remotes with http(s) URLs
+ _git_open() {
+ _list_remotes_completion '^http\(s\)\?://'
+ }
+
+ complete -F _git_open git-open
+ fi