Subject: Re: [PATCH] completion: use __gitcomp_builtin for format-patch

From: SZEDER Gábor <[email-masked]>
Date: Mon, 22 Oct 2018 12:17:19 +0200

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 <[email-masked]>
> ---
>  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/[email-masked]/

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