This patch causes bash completion to look for branch names instead of patch names for "branch" and "rebase". Unfortunately, the current completion framework does not seem flexible enough to get branch completion after "-b" flags, but I feel things are already better this way. Signed-off-by: Yann Dirson <ydirson@xxxxxxxxxx> --- contrib/stgit-completion.bash | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/contrib/stgit-completion.bash b/contrib/stgit-completion.bash index 760fc2f..d497098 100644 --- a/contrib/stgit-completion.bash +++ b/contrib/stgit-completion.bash @@ -98,6 +98,12 @@ _all_other_patches () | grep -v "^$(cat $g/patches/$b/current 2> /dev/null)$" } +_all_branches () +{ + local g=$(_gitdir) + [ "$g" ] && (cd .git/patches/ && echo *) +} + # List the command options _cmd_options () { @@ -137,6 +143,11 @@ _complete_patch_range_options () COMPREPLY=($(compgen -W "$options" -- "$cur")) } +_complete_branch () +{ + COMPREPLY=($(compgen -W "$(_cmd_options $1) $($2)" -- "${COMP_WORDS[COMP_CWORD]}")) +} + # Generate completions for options from the given list. _complete_options () { @@ -211,6 +222,9 @@ _stg () sync) _stg_patches $command _applied_patches ;; # working-copy commands diff) _stg_patches_options $command _applied_patches "-r --range" ;; + # commands that usually raher accept branches + branch) _complete_branch $command _all_branches ;; + rebase) _complete_branch $command _all_branches ;; # all the other commands *) _stg_common $command ;; esac - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html