# [PATCH 1/1] completion: don't comp revs when --no-format-patch

2 messages from 2024-01-08 to 2024-01-08. Participants: Britton Leo Kerin, Junio C Hamano.
Thread: https://gitlist.dev/t/60700

## Britton Leo Kerin, 2024-01-08 09:36

Subject: [PATCH 1/1] completion: don't comp revs when --no-format-patch
Message-ID: <ce76a31e-d435-477e-803c-92d0532174eb@smtp-relay.sendinblue.com>
URL: https://gitlist.dev/e/ce76a31e-d435-477e-803c-92d0532174eb%40smtp-relay.sendinblue.com
In-Reply-To: <20240108093601.136370-1-britton.kerin@gmail.com>

```
In this case the user has specifically said they don't want send-email
to run format-patch so revs aren't valid argument completions (and it's
likely revs and dirs do have some same names or prefixes as in
Documentation/MyFirstContribution.txt 'psuh').

Signed-off-by: Britton Leo Kerin <britton.kerin@gmail.com>
---
 contrib/completion/git-completion.bash | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 185b47d802..c983f3b2ab 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1242,10 +1242,12 @@ __git_find_last_on_cmdline ()
 	while test $# -gt 1; do
 		case "$1" in
 		--show-idx)	show_idx=y ;;
+		--)		shift && break ;;
 		*)		return 1 ;;
 		esac
 		shift
 	done
+	[ $# -eq 1 ] || return 1   # return 1 if we got wrong # of non-opts
 	local wordlist="$1"
 
 	while [ $c -gt "$__git_cmd_idx" ]; do
@@ -2429,7 +2431,9 @@ _git_send_email ()
 		return
 		;;
 	esac
-	__git_complete_revlist
+	if [ "$(__git_find_last_on_cmdline -- "--format-patch --no-format-patch")" != "--no-format-patch" ]; then
+		__git_complete_revlist
+	fi
 }
 
 _git_stage ()
-- 
2.43.0



```

## Junio C Hamano, 2024-01-08 18:39

Subject: Re: [PATCH 1/1] completion: don't comp revs when --no-format-patch
Message-ID: <xmqqplybk6th.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqplybk6th.fsf%40gitster.g
In-Reply-To: <ce76a31e-d435-477e-803c-92d0532174eb@smtp-relay.sendinblue.com>

```
>Subject: Re: [PATCH 1/1] completion: don't comp revs when --no-format-patch

I suspect "comp revs" -> "complete revs" is what you meant, but
if so, please spell it out to help folks who read "git shortlog --no-merges"
output, i.e. without help from the body of the log message.





```
