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

From: 清田郁弥 <[email-masked]>
Date: Tue, 21 Oct 2025 02:27:35 +0900

> 2025/10/20 1:07、Junio C Hamano <[email-masked]>のメール:
> 
> "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.
Thanks, I'll update the commit message.

> 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.
I’m not sure whether this is a known issue, but for now, I think it’s best to align with the current implementation (i.e., as in this patch) and add completion for 'git shortlog —exclude=' later when the bug is fixed.

> 
> 
>> 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
>