From: Felipe Contreras <felipe.contreras@gmail.com>
To: Philippe Blain via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Brandon Williams" <bwilliamseng@gmail.com>,
"Felipe Contreras" <felipe.contreras@gmail.com>,
"Ryan Zoeller" <rtzoeller@rtzoeller.com>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Philippe Blain" <levraiphilippeblain@gmail.com>,
"Philippe Blain" <levraiphilippeblain@gmail.com>
Subject: RE: [PATCH] parse-options: don't complete option aliases by default
Date: Thu, 15 Jul 2021 12:04:10 -0500 [thread overview]
Message-ID: <60f06a8a8e611_4b68208a9@natae.notmuch> (raw)
In-Reply-To: <pull.996.git.1626353925051.gitgitgadget@gmail.com>
Philippe Blain via GitGitGadget wrote:
> From: Philippe Blain <levraiphilippeblain@gmail.com>
>
> Since 'OPT_ALIAS' was created in 5c387428f1 (parse-options: don't emit
> "ambiguous option" for aliases, 2019-04-29), 'git clone
> --git-completion-helper', which is used by the Bash completion script to
> list options accepted by clone (via '__gitcomp_builtin'), lists both
> '--recurse-submodules' and its alias '--recursive', which was not the
> case before since '--recursive' had the PARSE_OPT_HIDDEN flag set, and
> options with this flag are skipped by 'parse-options.c::show_gitcomp',
> which implements 'git <cmd> --git-completion-helper'.
>
> At the point where 'show_gitcomp' is called in 'parse_options_step',
> 'preprocess_options' was already called in 'parse_options', so any
> aliases are now copies of the original options with a modified help text
> indicating they are aliases.
>
> Helpfully, since 64cc539fd2 (parse-options: don't leak alias help
> messages, 2021-03-21) these copies have the PARSE_OPT_FROM_ALIAS flag
> set, so check that flag early in 'show_gitcomp' and do not print them,
Makes sense but I don't think what the patch is doing should be buried
here. I think a separate paragraph explaining what you are trying to do
will be better.
> unless the user explicitely requested that *all* completion be shown (by
> setting 'GIT_COMPLETION_SHOW_ALL'). After all, if we want to encourage
> the use of '--recurse-submodules' over '--recursive', we'd better just
> suggest the former.
>
> The only other options alias is 'log' and friends' '--mailmap', which is
> an alias for '--use-mailmap', but the Bash completion helpers for these
> commands do not use '__gitcomp_builtin', and thus are unnaffected by
> this change.
>
> Test the new behaviour in t9902-completion.sh. As a side effect, this
> also tests the correct behaviour of GIT_COMPLETION_SHOW_ALL, which was
> not tested before. Note that since '__gitcomp_builtin' caches the
> options it shows, we need to re-source the completion script to clear
> that cache for the second test.
I agree this is better, and the patch itself looks obviously correct.
Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com>
--
Felipe Contreras
next prev parent reply other threads:[~2021-07-15 17:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-15 12:58 [PATCH] parse-options: don't complete option aliases by default Philippe Blain via GitGitGadget
2021-07-15 16:16 ` Ævar Arnfjörð Bjarmason
2021-07-15 17:16 ` Felipe Contreras
2021-07-15 18:57 ` Junio C Hamano
2021-07-16 1:28 ` Philippe Blain
2021-07-16 1:31 ` Philippe Blain
2021-07-15 17:04 ` Felipe Contreras [this message]
2021-07-16 1:28 ` Philippe Blain
2021-07-16 1:55 ` [PATCH v2] " Philippe Blain via GitGitGadget
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=60f06a8a8e611_4b68208a9@natae.notmuch \
--to=felipe.contreras@gmail.com \
--cc=bwilliamseng@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=levraiphilippeblain@gmail.com \
--cc=pclouds@gmail.com \
--cc=rtzoeller@rtzoeller.com \
--cc=szeder.dev@gmail.com \
/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.