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

[PATCH 1/4] Support --strategy=x completion in addition to --strategy x.

From
Shawn O. Pearce <spearce@spearce.org>
Date
Nov 27, 2006, 20:10 UTC
Message-ID
<20061127201041.GA7308@spearce.org>

Because git-merge and git-rebase both accept -s, --strategy or --strategy= we should recognize all three formats in the bash completion functions and issue back all merge strategies on demand.

I also moved the prior word testing to be before the current word testing, as the current word cannot be completed with -- if the prior word was an option which requires a parameter, such as -s or --strategy.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 contrib/completion/git-completion.bash |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a957165..e53f040 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -455,18 +455,23 @@ _git_log ()
 _git_merge ()
 {
 	local cur="${COMP_WORDS[COMP_CWORD]}"
+	case "${COMP_WORDS[COMP_CWORD-1]}" in
+	-s|--strategy)
+		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" -- "$cur"))
+		return
+	esac
 	case "$cur" in
+	--strategy=*)
+		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" \
+			-- "${cur##--strategy=}"))
+		return
+		;;
 	--*)
 		COMPREPLY=($(compgen -W "
 			--no-commit --no-summary --squash --strategy
 			" -- "$cur"))
 		return
 	esac
-	case "${COMP_WORDS[COMP_CWORD-1]}" in
-	-s|--strategy)
-		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" -- "$cur"))
-		return
-	esac
 	COMPREPLY=($(compgen -W "$(__git_refs)" -- "$cur"))
 }
 
@@ -543,18 +548,23 @@ _git_rebase ()
 			" -- "$cur"))
 		return
 	fi
+	case "${COMP_WORDS[COMP_CWORD-1]}" in
+	-s|--strategy)
+		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" -- "$cur"))
+		return
+	esac
 	case "$cur" in
+	--strategy=*)
+		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" \
+			-- "${cur##--strategy=}"))
+		return
+		;;
 	--*)
 		COMPREPLY=($(compgen -W "
 			--onto --merge --strategy
 			" -- "$cur"))
 		return
 	esac
-	case "${COMP_WORDS[COMP_CWORD-1]}" in
-	-s|--strategy)
-		COMPREPLY=($(compgen -W "$(__git_merge_strategies)" -- "$cur"))
-		return
-	esac
 	COMPREPLY=($(compgen -W "$(__git_refs)" -- "$cur"))
 }
 
-- 
1.4.4.1.ge3fb
Message 1 of 1 in “Support --strategy=x completion in addition to --strategy x.”
  1. 1/4 Support --strategy=x completion in addition to --strategy x.Shawn O. Pearce, Nov 27, 2006

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.