Subject: Re: [PATCH] completion: complete some 'git log' options

From: Junio C Hamano <[email-masked]>
Date: Sun, 19 Oct 2025 09:07:25 -0700

"KIYOTA Fumiya via GitGitGadget" <[email-masked]> writes:

> From: KIYOTA Fumiya <[email-masked]>
>
> 1. '--exclude=' option to 'git log' and 'git shortlog' are missing. Add the
> option to __git_log_shortlog_options.

Nice.

> 2. The `--committer` option in `git log` requires a pattern, such as
> `--committer=ba`, but in `git shortlog`, specifying a pattern results in
> an error: “error: option `committer' takes no value.” Therefore, I’ll
> handle them as separate options for completion rather than a shared one.

"Therefore, I'll h" -> "H" then the result matches the previous one
to describe the solution as if you are giving an order to somebody
sitting at the keyboard and making the changes for you, which is the
style this project uses.

Very good observation to notice the latter issue.  Has it been
raised as a bug that shortlog uses --committer in a way inconsistent
with the rest of the log family of commands?  Perhaps people often
do not limit shortlog by committers like they limit by authors, but
"group by committer" that is squatting on an option that users would
expect to be used for "limit to a given committer" does sound like a
small UI glitch to me.

Will queue.  Thanks.

> Signed-off-by: KIYOTA Fumiya <[email-masked]>
> ---
>     completion: complete some 'git log' options
>     
>      1. '--exclude=' option to 'git log' and 'git shortlog' are missing. Add
>         the option to __git_log_shortlog_options.
>     
>      2. The --committer option in git log requires a pattern, such as
>         --committer=ba, but in git shortlog, specifying a pattern results in
>         an error: “error: option `committer' takes no value.” Therefore,
>         I’ll handle them as separate options for completion rather than a
>         shared one.
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2073%2FFKbelm%2FlogCompletion-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2073/FKbelm/logCompletion-v1
> Pull-Request: https://github.com/git/git/pull/2073
>
>  contrib/completion/git-completion.bash | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index e3d88b0672..73abea31b4 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -2218,7 +2218,7 @@ __git_log_gitk_options="
>  "
>  # Options that go well for log and shortlog (not gitk)
>  __git_log_shortlog_options="
> -	--author= --committer= --grep=
> +	--author= --grep= --exclude=
>  	--all-match --invert-grep
>  "
>  # Options accepted by log and show
> @@ -2296,6 +2296,7 @@ __git_complete_log_opts ()
>  			$__git_log_shortlog_options
>  			$__git_log_gitk_options
>  			$__git_log_show_options
> +			--committer=
>  			--root --topo-order --date-order --reverse
>  			--follow --full-diff
>  			--abbrev-commit --no-abbrev-commit --abbrev=
> @@ -3229,7 +3230,7 @@ _git_shortlog ()
>  		__gitcomp "
>  			$__git_log_common_options
>  			$__git_log_shortlog_options
> -			--numbered --summary --email
> +			--committer --numbered --summary --email
>  			"
>  		return
>  		;;
>
> base-commit: 4253630c6f07a4bdcc9aa62a50e26a4d466219d1