completion: remote set-* <name> and <branch>

Complete <name> only for set-url. For set-branches and
set-head, complete <name> and <branch> over the network,
like e.g. git pull already does.

Signed-off-by: Philip Jägenstedt <philip@foolip.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Philip Jägenstedt
2012-02-22 09:58:10 +01:00
committed by Junio C Hamano
parent 514a529d25
commit f1c6ffe684

View File

@ -726,6 +726,9 @@ __git_complete_remote_or_refspec ()
{ {
local cur_="$cur" cmd="${words[1]}" local cur_="$cur" cmd="${words[1]}"
local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
if [ "$cmd" = "remote" ]; then
c=$((++c))
fi
while [ $c -lt $cword ]; do while [ $c -lt $cword ]; do
i="${words[c]}" i="${words[c]}"
case "$i" in case "$i" in
@ -776,7 +779,7 @@ __git_complete_remote_or_refspec ()
__gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
fi fi
;; ;;
pull) pull|remote)
if [ $lhs = 1 ]; then if [ $lhs = 1 ]; then
__gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
else else
@ -2277,7 +2280,7 @@ _git_config ()
_git_remote () _git_remote ()
{ {
local subcommands="add rename rm show prune update set-head" local subcommands="add rename rm set-head set-branches set-url show prune update"
local subcommand="$(__git_find_on_cmdline "$subcommands")" local subcommand="$(__git_find_on_cmdline "$subcommands")"
if [ -z "$subcommand" ]; then if [ -z "$subcommand" ]; then
__gitcomp "$subcommands" __gitcomp "$subcommands"
@ -2285,9 +2288,12 @@ _git_remote ()
fi fi
case "$subcommand" in case "$subcommand" in
rename|rm|show|prune) rename|rm|set-url|show|prune)
__gitcomp_nl "$(__git_remotes)" __gitcomp_nl "$(__git_remotes)"
;; ;;
set-head|set-branches)
__git_complete_remote_or_refspec
;;
update) update)
local i c='' IFS=$'\n' local i c='' IFS=$'\n'
for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do