bash completion: teach fetch, pull, and push to complete their options
fetch, pull, and push didn't know their options. They do now. merge's options are factored into a variable so they can be shared between _git_merge and _git_pull Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3c7b480a1c
commit
0a4e14727f
@ -391,10 +391,11 @@ __git_complete_remote_or_refspec ()
|
|||||||
{
|
{
|
||||||
local cmd="${COMP_WORDS[1]}"
|
local cmd="${COMP_WORDS[1]}"
|
||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
local i c=2 remote="" pfx="" lhs=1
|
local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
|
||||||
while [ $c -lt $COMP_CWORD ]; do
|
while [ $c -lt $COMP_CWORD ]; do
|
||||||
i="${COMP_WORDS[c]}"
|
i="${COMP_WORDS[c]}"
|
||||||
case "$i" in
|
case "$i" in
|
||||||
|
--all|--mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
|
||||||
-*) ;;
|
-*) ;;
|
||||||
*) remote="$i"; break ;;
|
*) remote="$i"; break ;;
|
||||||
esac
|
esac
|
||||||
@ -404,6 +405,10 @@ __git_complete_remote_or_refspec ()
|
|||||||
__gitcomp "$(__git_remotes)"
|
__gitcomp "$(__git_remotes)"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
if [ $no_complete_refspec = 1 ]; then
|
||||||
|
COMPREPLY=()
|
||||||
|
return
|
||||||
|
fi
|
||||||
[ "$remote" = "." ] && remote=
|
[ "$remote" = "." ] && remote=
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
*:*)
|
*:*)
|
||||||
@ -904,8 +909,20 @@ _git_diff ()
|
|||||||
__git_complete_file
|
__git_complete_file
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__git_fetch_options="
|
||||||
|
--quiet --verbose --append --upload-pack --force --keep --depth=
|
||||||
|
--tags --no-tags
|
||||||
|
"
|
||||||
|
|
||||||
_git_fetch ()
|
_git_fetch ()
|
||||||
{
|
{
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
__gitcomp "$__git_fetch_options"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
__git_complete_remote_or_refspec
|
__git_complete_remote_or_refspec
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1110,6 +1127,11 @@ _git_log ()
|
|||||||
__git_complete_revlist
|
__git_complete_revlist
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__git_merge_options="
|
||||||
|
--no-commit --no-stat --log --no-log --squash --strategy
|
||||||
|
--commit --stat --no-squash --ff --no-ff
|
||||||
|
"
|
||||||
|
|
||||||
_git_merge ()
|
_git_merge ()
|
||||||
{
|
{
|
||||||
__git_complete_strategy && return
|
__git_complete_strategy && return
|
||||||
@ -1117,10 +1139,7 @@ _git_merge ()
|
|||||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--*)
|
--*)
|
||||||
__gitcomp "
|
__gitcomp "$__git_merge_options"
|
||||||
--no-commit --no-stat --log --no-log --squash --strategy
|
|
||||||
--commit --stat --no-squash --ff --no-ff
|
|
||||||
"
|
|
||||||
return
|
return
|
||||||
esac
|
esac
|
||||||
__gitcomp "$(__git_refs)"
|
__gitcomp "$(__git_refs)"
|
||||||
@ -1169,11 +1188,43 @@ _git_name_rev ()
|
|||||||
|
|
||||||
_git_pull ()
|
_git_pull ()
|
||||||
{
|
{
|
||||||
|
__git_complete_strategy && return
|
||||||
|
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
case "$cur" in
|
||||||
|
--*)
|
||||||
|
__gitcomp "
|
||||||
|
--rebase --no-rebase
|
||||||
|
$__git_merge_options
|
||||||
|
$__git_fetch_options
|
||||||
|
"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
__git_complete_remote_or_refspec
|
__git_complete_remote_or_refspec
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_push ()
|
_git_push ()
|
||||||
{
|
{
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
case "${COMP_WORDS[COMP_CWORD-1]}" in
|
||||||
|
--repo)
|
||||||
|
__gitcomp "$(__git_remotes)"
|
||||||
|
return
|
||||||
|
esac
|
||||||
|
case "$cur" in
|
||||||
|
--repo=*)
|
||||||
|
__gitcomp "$(__git_remotes)" "" "${cur##--repo=}"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
--*)
|
||||||
|
__gitcomp "
|
||||||
|
--all --mirror --tags --dry-run --force --verbose
|
||||||
|
--receive-pack= --repo=
|
||||||
|
"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
__git_complete_remote_or_refspec
|
__git_complete_remote_or_refspec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user