[PATCH] Teach bash to complete branch names in some places.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]