Re: [PATCH v2 2/4] completion: complete 'git history --empty' values

"D. Ben Knoble" <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <CALnO6CCCG0xcZtAKQdNsKxNJ2Nyq5HztLaz_7QXjfQsN-q-xgA@mail.gmail.com>
On Thu, Aug 6, 2026 at 4:36 PM Vincent Mailhol <[email protected]> wrote:
>
> The "--empty" option accepts "drop", "keep", or "abort" for the "drop"
> and "fixup" subcommands. Complete these values.
>
> Although the synopsis only documents the:
>
>   --empty=<value>
>
> form, parse-options also accepts the value as a separate argument:
>
>   --empty <value>
>
> Support both forms to follow the parser.

Comments on 1/4 apply here, too. I don't mind supporting both, but I
wonder if we should be consistent with gitcli(1) and just go with the
stuck form.

I can only find one hit for the pattern "--[[:alnum:]-]+[^=],?\*" (use
"git grep -E") in the completion code, and it's "--no-*)", so I'm not
sure if other commands support completing the unstuck form? For
example, "git commit --cleanup <tab>" doesn't complete the mode
argument, but "git commit --cleanup=<tab>" does.

>
> Signed-off-by: Vincent Mailhol <[email protected]>
> ---
> Changes in v2:
>
>   - New patch.
> ---
>  contrib/completion/git-completion.bash | 13 +++++++++++--
>  t/t9902-completion.sh                  |  5 ++++-
>  2 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 7372e2919b..fe5223b8ec 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -2171,8 +2171,17 @@ _git_history ()
>         fi
>
>         if ! __git_has_doubledash; then
> -               case "$cur" in
> -               --*)
> +               case "$prev,$cur" in
> +               --empty,*|*,--empty=*)
> +                       case "$subcommand" in
> +                       drop|fixup)
> +                               __gitcomp "drop keep abort" "" \
> +                                       "${cur##--empty=}"
> +                               return
> +                               ;;
> +                       esac
> +                       ;;
> +               *,--*)
>                         __gitcomp_builtin "history_$subcommand"
>                         return
>                         ;;
> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> index 5ccb38c751..52a036a1ad 100755
> --- a/t/t9902-completion.sh
> +++ b/t/t9902-completion.sh
> @@ -3126,7 +3126,10 @@ test_expect_success 'git history subcommand options' '
>         test_completion "git history fixup --ree" "--reedit-message " &&
>         test_completion "git history split --upd" "--update-refs=" &&
>         test_completion "git history split main --dry" "--dry-run " &&
> -       test_completion "git history reword main -- --d" ""
> +       test_completion "git history reword main -- --d" "" &&
> +       test_completion "git history fixup --empty=ke" "keep " &&
> +       test_completion "git history drop --empty ab" "abort " &&
> +       test_completion "git history reword --empty=ke" ""
>  '
>
>  test_expect_success 'git history revisions' '
>
> --
> 2.54.0
>
>


-- 
D. Ben Knoble
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.