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

From: "KIYOTA Fumiya via GitGitGadget" <[email-masked]>
Date: Mon, 20 Oct 2025 17:32:57 +0000

From: KIYOTA Fumiya <[email-masked]>

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.” Handle them as
separate options for completion rather than a shared one.

Signed-off-by: KIYOTA Fumiya <[email-masked]>
---
    completion: complete some 'git log' options
    
    Change since v1:
    
     * Make the commit message follow the Git project’s style.
    
    v1:
    
     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-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2073/FKbelm/logCompletion-v2
Pull-Request: https://github.com/git/git/pull/2073

Range-diff vs v1:

 1:  2887b0e6c9 ! 1:  d8edd3653a completion: complete some 'git log' options
     @@ Commit message
      
          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.
     +    an error: “error: option `committer' takes no value.” Handle them as
     +    separate options for completion rather than a shared one.
      
          Signed-off-by: KIYOTA Fumiya <[email-masked]>

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