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