From: Vincent Mailhol <mailhol@kernel.org>
To: Patrick Steinhardt <ps@pks.im>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Philippe Blain <levraiphilippeblain@gmail.com>
Subject: Re: [PATCH v2 1/4] completion: add 'git history' subcommands
Date: Fri, 7 Aug 2026 08:44:41 +0200 [thread overview]
Message-ID: <e894cf4e-7df2-489a-a596-96f1d4d95dc0@kernel.org> (raw)
In-Reply-To: <anV7cHblfmGvbl-e@pks.im>
On 07/08/2026 at 08:30, Patrick Steinhardt wrote:
> On Thu, Aug 06, 2026 at 10:27:36PM +0200, Vincent Mailhol wrote:
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index e875787710..7372e2919b 100644
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -2137,6 +2137,54 @@ _git_help ()
>> fi
>> }
>>
>> +__git_history_has_revision ()
>> +{
>> + local i
>> +
>> + for ((i = __git_cmd_idx + 2; i < cword; i++)); do
>> + case "${words[i]}" in
>> + --empty|--update-refs)
>> + ((i++))
>> + ;;
>
> This will unfortunately be quite a pain to maintain going forward, as we
> now have to be aware of updating this site every single time we add a
> new option that accepts a parameter.
Do you foreseen such new parameters?
> I don't really have a good idea for how to fix that reliably though, I
> have to admit. Maybe we should just mostly ignore this edge case and
> always complete references, unless we have seen a `--`? That can be
> checked rather easily via `__git_hash_doubledash`.
My toughs are that if such a special case ever surface, we can just
dispatch it earlier before we check for the
__git_history_has_revision, like this:
---8<---
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index d313780d8b..786fcb5e16 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2193,6 +2193,15 @@ _git_history ()
esac
fi
+ # Subcommands which takes something else than a revision
+ case "$subcommand" in
+ foo)
+ # 'git history foo' take a file first
+ __git_complete_index_file "--cached"
+ return
+ ;;
+ esac
+
if ! __git_history_has_revision; then
__git_complete_refs
return
---8<---
This seems reasonable to me. Once we know what this mysterious new
command would be, maybe we can find a smarter and more tailored
solution, but at the moment, I would not call this a blocker.
> That'd still be a huge win compared to the status quo, and if we really
> care about making this work properly we can still iterate.
Thanks!
Yours sincerely,
Vincent Mailhol
next prev parent reply other threads:[~2026-08-07 6:44 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-06 20:27 [PATCH v2 0/4] completion: add support for 'git history' Vincent Mailhol
2026-08-06 20:27 ` [PATCH v2 1/4] completion: add 'git history' subcommands Vincent Mailhol
2026-08-07 6:30 ` Patrick Steinhardt
2026-08-07 6:44 ` Vincent Mailhol [this message]
2026-08-07 7:08 ` Patrick Steinhardt
2026-08-07 8:09 ` Vincent Mailhol
2026-08-10 12:43 ` D. Ben Knoble
2026-08-06 20:27 ` [PATCH v2 2/4] completion: complete 'git history --empty' values Vincent Mailhol
2026-08-10 12:48 ` D. Ben Knoble
2026-08-10 12:50 ` D. Ben Knoble
2026-08-06 20:27 ` [PATCH v2 3/4] completion: complete 'git history --update-refs' values Vincent Mailhol
2026-08-10 12:52 ` D. Ben Knoble
2026-08-06 20:27 ` [PATCH v2 4/4] completion: complete 'git history split' pathspecs Vincent Mailhol
2026-08-10 12:58 ` D. Ben Knoble
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e894cf4e-7df2-489a-a596-96f1d4d95dc0@kernel.org \
--to=mailhol@kernel.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=levraiphilippeblain@gmail.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.