From: Patrick Steinhardt <ps@pks.im>
To: Britton Leo Kerin <britton.kerin@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v5 3/7] completion: bisect: complete custom terms and related options
Date: Tue, 6 Feb 2024 08:40:38 +0100 [thread overview]
Message-ID: <ZcHidsY0X5-7rw2V@tanuki> (raw)
In-Reply-To: <20240206020930.312164-4-britton.kerin@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3577 bytes --]
On Mon, Feb 05, 2024 at 05:09:26PM -0900, Britton Leo Kerin wrote:
> git bisect supports the use of custom terms via the --term-(new|bad) and
> --term-(old|good) options, but the completion code doesn't know about
> these options or the new subcommands they define.
>
> Add support for these options and the custom subcommands by checking for
> BISECT_TERMS and adding them to the list of subcommands. Add tests.
>
> Signed-off-by: Britton Leo Kerin <britton.kerin@gmail.com>
> ---
> contrib/completion/git-completion.bash | 32 ++++++++++++++++++++++++--
> t/t9902-completion.sh | 15 ++++++++++++
> 2 files changed, 45 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 06d0b156e7..6a3d9c7760 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1449,7 +1449,20 @@ _git_bisect ()
> {
> __git_has_doubledash && return
>
> - local subcommands="start bad new good old skip reset visualize replay log run help"
> + __git_find_repo_path
> +
> + # If a bisection is in progress get the terms being used.
> + local term_bad term_good
> + if [ -f "$__git_repo_path"/BISECT_TERMS ]; then
> + term_bad=$(__git bisect terms --term-bad)
> + term_good=$(__git bisect terms --term-good)
> + fi
> +
> + # We will complete any custom terms, but still always complete the
> + # more usual bad/new/good/old because git bisect gives a good error
> + # message if these are given when not in use, and that's better than
> + # silent refusal to complete if the user is confused.
> + local subcommands="start bad new $term_bad good old $term_good terms skip reset visualize replay log run help"
> local subcommand="$(__git_find_on_cmdline "$subcommands")"
> if [ -z "$subcommand" ]; then
> __git_find_repo_path
> @@ -1462,7 +1475,22 @@ _git_bisect ()
> fi
>
> case "$subcommand" in
> - bad|new|good|old|reset|skip|start)
> + start)
> + case "$cur" in
> + --*)
> + __gitcomp "--term-new --term-bad --term-old --term-good"
> + return
> + ;;
> + *)
> + __git_complete_refs
> + ;;
> + esac
> + ;;
> + terms)
> + __gitcomp "--term-good --term-old --term-bad --term-new"
> + return
> + ;;
> + bad|new|"$term_bad"|good|old|"$term_good"|reset|skip)
> __git_complete_refs
> ;;
> *)
> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> index 7388c892cf..409a5a49d5 100755
> --- a/t/t9902-completion.sh
> +++ b/t/t9902-completion.sh
> @@ -1321,9 +1321,12 @@ test_expect_success 'git-bisect - when bisecting all subcommands are candidates'
> test_completion "git bisect " <<-\EOF
> start Z
> bad Z
> + custom_new Z
> + custom_old Z
> new Z
> good Z
> old Z
> + terms Z
> skip Z
> reset Z
> visualize Z
> @@ -1334,6 +1337,18 @@ test_expect_success 'git-bisect - when bisecting all subcommands are candidates'
> EOF
> )
> '
Nit: missing a newline between the tests...
> +test_expect_success 'git-bisect - options to terms subcommand are candidates' '
> + (
> + cd git-bisect &&
> + test_completion "git bisect terms --" <<-\EOF
> + --term-bad Z
> + --term-good Z
> + --term-new Z
> + --term-old Z
> + EOF
> + )
> +'
> +
>
... wheeras here we have a newline too many now.
Patrick
> test_expect_success 'git checkout - completes refs and unique remote branches for DWIM' '
> test_completion "git checkout " <<-\EOF
> --
> 2.43.0
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-02-06 7:40 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-02 19:57 [RFC PATCH 0/6] completion: improvements for git-bisect Britton Leo Kerin
2024-01-10 2:03 ` [PATCH v2 0/5] " Britton Leo Kerin
2024-01-18 20:43 ` [PATCH v3 " Britton Leo Kerin
2024-01-18 20:43 ` [PATCH v3 1/5] completion: complete new old actions, start opts Britton Leo Kerin
2024-01-19 7:04 ` Patrick Steinhardt
2024-01-18 20:43 ` [PATCH v3 2/5] completion: git-log opts to bisect visualize Britton Leo Kerin
2024-01-19 7:04 ` Patrick Steinhardt
2024-01-18 20:43 ` [PATCH v3 3/5] completion: move to maintain define-before-use Britton Leo Kerin
2024-01-19 7:04 ` Patrick Steinhardt
2024-01-18 20:43 ` [PATCH v3 4/5] completion: custom git-bisect terms Britton Leo Kerin
2024-01-19 7:04 ` Patrick Steinhardt
2024-01-18 20:43 ` [PATCH v3 5/5] completion: git-bisect view recognized but not completed Britton Leo Kerin
2024-01-19 7:05 ` Patrick Steinhardt
2024-01-19 7:05 ` [PATCH v3 0/5] completion: improvements for git-bisect Patrick Steinhardt
2024-01-19 18:27 ` Junio C Hamano
2024-01-26 0:23 ` Britton Kerin
2024-01-28 22:34 ` [PATCH v4 0/8] " Britton Leo Kerin
2024-01-28 22:34 ` [PATCH v4 1/8] completion: bisect: complete bad, new, old, and help subcommands Britton Leo Kerin
2024-02-01 9:55 ` Patrick Steinhardt
2024-01-28 22:34 ` [PATCH v4 2/8] completion: bisect: complete custom terms and related options Britton Leo Kerin
2024-02-01 9:55 ` Patrick Steinhardt
2024-01-28 22:34 ` [PATCH v4 3/8] completion: bisect: complete missing --first-parent and --no-checkout options Britton Leo Kerin
2024-01-28 22:34 ` [PATCH v4 4/8] completion: new function __git_complete_log_opts Britton Leo Kerin
2024-01-28 22:34 ` [PATCH v4 5/8] completion: log: use __git_complete_log_opts Britton Leo Kerin
2024-02-01 9:55 ` Patrick Steinhardt
2024-01-28 22:34 ` [PATCH v4 6/8] completion: bisect: complete log opts for visualize subcommand Britton Leo Kerin
2024-01-28 22:34 ` [PATCH v4 7/8] completion: bisect: recognize but do not complete view subcommand Britton Leo Kerin
2024-01-28 22:34 ` [PATCH v4 8/8] completion: add tests for git-bisect Britton Leo Kerin
2024-01-30 5:47 ` Junio C Hamano
2024-02-01 9:55 ` Patrick Steinhardt
2024-02-01 9:55 ` [PATCH v4 0/8] completion: improvements " Patrick Steinhardt
2024-02-06 2:09 ` [PATCH v5 0/7] " Britton Leo Kerin
2024-02-06 2:09 ` [PATCH v5 1/7] completion: tests: always use 'master' for default initial branch name Britton Leo Kerin
2024-02-06 2:09 ` [PATCH v5 2/7] completion: bisect: complete bad, new, old, and help subcommands Britton Leo Kerin
2024-02-06 7:40 ` Patrick Steinhardt
2024-02-06 2:09 ` [PATCH v5 3/7] completion: bisect: complete custom terms and related options Britton Leo Kerin
2024-02-06 7:40 ` Patrick Steinhardt [this message]
2024-02-06 2:09 ` [PATCH v5 4/7] completion: bisect: complete missing --first-parent and --no-checkout options Britton Leo Kerin
2024-02-06 2:09 ` [PATCH v5 5/7] completion: new function __git_complete_log_opts Britton Leo Kerin
2024-02-06 7:40 ` Patrick Steinhardt
2024-02-06 2:09 ` [PATCH v5 6/7] completion: bisect: complete log opts for visualize subcommand Britton Leo Kerin
2024-02-06 2:09 ` [PATCH v5 7/7] completion: bisect: recognize but do not complete view subcommand Britton Leo Kerin
2024-02-06 7:40 ` [PATCH v5 0/7] completion: improvements for git-bisect Patrick Steinhardt
2024-02-06 21:50 ` [PATCH v6 " Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 1/7] completion: tests: always use 'master' for default initial branch name Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 2/7] completion: bisect: complete bad, new, old, and help subcommands Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 3/7] completion: bisect: complete custom terms and related options Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 4/7] completion: bisect: complete missing --first-parent and --no-checkout options Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 5/7] completion: new function __git_complete_log_opts Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 6/7] completion: bisect: complete log opts for visualize subcommand Britton Leo Kerin
2024-02-06 21:50 ` [PATCH v6 7/7] completion: bisect: recognize but do not complete view subcommand Britton Leo Kerin
2024-02-06 22:58 ` [PATCH v6 0/7] completion: improvements for git-bisect Junio C Hamano
2024-02-07 5:26 ` Patrick Steinhardt
[not found] ` <20240110020347.673155-1-britton.kerin@gmail.com>
2024-01-10 2:03 ` [PATCH v2 1/5] completion: complete new old actions, start opts Britton Leo Kerin
2024-01-10 2:03 ` [PATCH v2 2/5] completion: git-log opts to bisect visualize Britton Leo Kerin
2024-01-10 2:03 ` [PATCH v2 3/5] completion: move to maintain define-before-use Britton Leo Kerin
2024-01-10 2:03 ` [PATCH v2 4/5] completion: custom git-bisect terms Britton Leo Kerin
2024-01-10 2:03 ` [PATCH v2 5/5] " Britton Leo Kerin
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=ZcHidsY0X5-7rw2V@tanuki \
--to=ps@pks.im \
--cc=britton.kerin@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).