diff mbox series

completion: use __gitcomp_builtin for format-patch

Message ID 20181021084102.8318-1-pclouds@gmail.com (mailing list archive)
State New, archived
Headers show
Series completion: use __gitcomp_builtin for format-patch | expand

Commit Message

Duy Nguyen Oct. 21, 2018, 8:41 a.m. UTC
This helps format-patch gain completion for a couple new options,
notably --range-diff.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Of course it will be even better if I could complete the ref for
 --range-diff=, but maybe another day.

 contrib/completion/git-completion.bash | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

SZEDER Gábor Oct. 22, 2018, 10:17 a.m. UTC | #1
On Sun, Oct 21, 2018 at 10:41:02AM +0200, Nguyễn Thái Ngọc Duy wrote:
> This helps format-patch gain completion for a couple new options,
> notably --range-diff.
> 
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  Of course it will be even better if I could complete the ref for
>  --range-diff=, but maybe another day.
> 
>  contrib/completion/git-completion.bash | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index c8fdcf8644..065b922777 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1533,12 +1533,8 @@ _git_fetch ()
>  }
>  
>  __git_format_patch_options="
> -	--stdout --attach --no-attach --thread --thread= --no-thread
> -	--numbered --start-number --numbered-files --keep-subject --signoff
> -	--signature --no-signature --in-reply-to= --cc= --full-index --binary
> -	--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
> -	--inline --suffix= --ignore-if-in-upstream --subject-prefix=
> -	--output-directory --reroll-count --to= --quiet --notes
> +	--full-index --not --all --no-prefix --src-prefix=
> +	--dst-prefix= --notes
>  "

$__git_format_patch_options is also used when completing 'git
send-email's options, thus removing all these options will badly
affect that, and in fact makes 't9902-completion.sh' fail with:

  expecting success:
          test_completion "git send-email --cov" "--cover-letter " &&
          test_completion "git send-email ma" "master "
  
  --- expected    2018-10-22 09:03:42.255325418 +0000
  +++ out_sorted  2018-10-22 09:03:42.255325418 +0000
  @@ -1 +1 @@
  ---cover-letter
  +
  not ok 122 - send-email
  #
  #               test_completion "git send-email --cov" "--cover-letter " &&
  #               test_completion "git send-email ma" "master "
  #


>  _git_format_patch ()
> @@ -1551,7 +1547,7 @@ _git_format_patch ()
>  		return
>  		;;
>  	--*)
> -		__gitcomp "$__git_format_patch_options"
> +		__gitcomp_builtin format-patch "$__git_format_patch_options"

You sent out a separate bugfix patch (i.e. not a patch series)
"completion: fix __gitcomp_builtin no longer consider extra options"
in:

  https://public-inbox.org/git/20181021083731.8009-1-pclouds@gmail.com/

and this patch makes the completion of 'git format-patch' also use
extra options...  So, does this patch really work without that bugfix?

>  		return
>  		;;
>  	esac
> -- 
> 2.19.1.647.g708186aaf9
>
Johannes Schindelin Oct. 22, 2018, 12:12 p.m. UTC | #2
Hi Duy,

On Sun, 21 Oct 2018, Nguyễn Thái Ngọc Duy wrote:

> This helps format-patch gain completion for a couple new options,
> notably --range-diff.
> 
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  Of course it will be even better if I could complete the ref for
>  --range-diff=, but maybe another day.
> 
>  contrib/completion/git-completion.bash | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index c8fdcf8644..065b922777 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1533,12 +1533,8 @@ _git_fetch ()
>  }
>  
>  __git_format_patch_options="
> -	--stdout --attach --no-attach --thread --thread= --no-thread
> -	--numbered --start-number --numbered-files --keep-subject --signoff
> -	--signature --no-signature --in-reply-to= --cc= --full-index --binary
> -	--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
> -	--inline --suffix= --ignore-if-in-upstream --subject-prefix=
> -	--output-directory --reroll-count --to= --quiet --notes
> +	--full-index --not --all --no-prefix --src-prefix=
> +	--dst-prefix= --notes
>  "
>  
>  _git_format_patch ()
> @@ -1551,7 +1547,7 @@ _git_format_patch ()
>  		return
>  		;;
>  	--*)
> -		__gitcomp "$__git_format_patch_options"
> +		__gitcomp_builtin format-patch "$__git_format_patch_options"

Is it just me, or does this fail t9902 for you, too, where it wants to
complete the --cover-letter option for *send-email* (not for
*format-patch*)?

See e.g.
https://git-for-windows.visualstudio.com/git/_build/results?buildId=22023&view=logs

Ciao,
Dscho

>  		return
>  		;;
>  	esac
> -- 
> 2.19.1.647.g708186aaf9
> 
> 
>
Duy Nguyen Oct. 22, 2018, 2:25 p.m. UTC | #3
On Mon, Oct 22, 2018 at 12:17 PM SZEDER Gábor <szeder.dev@gmail.com> wrote:
>
> On Sun, Oct 21, 2018 at 10:41:02AM +0200, Nguyễn Thái Ngọc Duy wrote:
> > This helps format-patch gain completion for a couple new options,
> > notably --range-diff.
> >
> > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> > ---
> >  Of course it will be even better if I could complete the ref for
> >  --range-diff=, but maybe another day.
> >
> >  contrib/completion/git-completion.bash | 10 +++-------
> >  1 file changed, 3 insertions(+), 7 deletions(-)
> >
> > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> > index c8fdcf8644..065b922777 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -1533,12 +1533,8 @@ _git_fetch ()
> >  }
> >
> >  __git_format_patch_options="
> > -     --stdout --attach --no-attach --thread --thread= --no-thread
> > -     --numbered --start-number --numbered-files --keep-subject --signoff
> > -     --signature --no-signature --in-reply-to= --cc= --full-index --binary
> > -     --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
> > -     --inline --suffix= --ignore-if-in-upstream --subject-prefix=
> > -     --output-directory --reroll-count --to= --quiet --notes
> > +     --full-index --not --all --no-prefix --src-prefix=
> > +     --dst-prefix= --notes
> >  "
>
> $__git_format_patch_options is also used when completing 'git
> send-email's options, thus removing all these options will badly
> affect that, and in fact makes 't9902-completion.sh' fail with:

Oops. I guess I was excited about the other fix and forgot to test
this patch. Junio please kick it out of 'pu'.

I'll need to think if I could somehow make send-email work without
hardcoding a bunch of options in it.,,
diff mbox series

Patch

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index c8fdcf8644..065b922777 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1533,12 +1533,8 @@  _git_fetch ()
 }
 
 __git_format_patch_options="
-	--stdout --attach --no-attach --thread --thread= --no-thread
-	--numbered --start-number --numbered-files --keep-subject --signoff
-	--signature --no-signature --in-reply-to= --cc= --full-index --binary
-	--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
-	--inline --suffix= --ignore-if-in-upstream --subject-prefix=
-	--output-directory --reroll-count --to= --quiet --notes
+	--full-index --not --all --no-prefix --src-prefix=
+	--dst-prefix= --notes
 "
 
 _git_format_patch ()
@@ -1551,7 +1547,7 @@  _git_format_patch ()
 		return
 		;;
 	--*)
-		__gitcomp "$__git_format_patch_options"
+		__gitcomp_builtin format-patch "$__git_format_patch_options"
 		return
 		;;
 	esac