git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Yann Dirson <ydirson@altern.org>
Date
May 6, 2007, 23:13 UTC
Message-ID
<20070506231357.31547.25929.stgit@gandelf.nowhere.earth>

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@altern.org>
---
 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
Next: Karl Hasselström
Message 1 of 2 in “Teach bash to complete branch names in some places.”
  1. Teach bash to complete branch names in some places.Yann Dirson, May 6, 2007
  2. Karl HasselströmMay 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.