threads / patch / 32284

patchcompletion: add option --recurse-submodules to "git push"

Subject: [PATCH] completion: add option --recurse-submodules to "git push"

## tl;dr

4 messages between Dec 7, 2012 and Dec 18, 2012. Diffs are folded; open one to read it.

replies: 3people: 4as markdown or json

Steffen Jaeckel· Dec 7, 2012, 12:28 UTC · lore
Signed-off-by: Steffen Jaeckel <steffen.jaeckel@stzedn.de>
---
 contrib/completion/git-completion.bash | 9 +++++++++
 1 file changed, 9 insertions(+)
Show changes to contrib/completion/git-completion.bash +9 −0
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0b77eb1..5b4d2e1 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1434,6 +1434,10 @@ _git_pull ()
 	__git_complete_remote_or_refspec
 }
 
+__git_push_recurse_submodules_options="
+	check on-demand
+"
+
 _git_push ()
 {
 	case "$prev" in
@@ -1446,10 +1450,15 @@ _git_push ()
 		__gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
 		return
 		;;
+	--recurse-submodules=*)
+		__gitcomp "$__git_push_recurse_submodules_options" "" "${cur##--recurse-submodules=}"
+		return
+		;;
 	--*)
 		__gitcomp "
 			--all --mirror --tags --dry-run --force --verbose
 			--receive-pack= --repo= --set-upstream
+			--recurse-submodules=
 		"
 		return
 		;;
-- 
1.8.0.msysgit.0
Junio C Hamano· Dec 7, 2012, 17:21 UTC · re: Steffen Jaeckel · lore

Re: [PATCH] completion: add option --recurse-submodules to "git push"

Steffen Jaeckel <steffen.jaeckel@stzedn.de> writes:
Show 16 quoted lines
> Signed-off-by: Steffen Jaeckel <steffen.jaeckel@stzedn.de>
> ---
>  contrib/completion/git-completion.bash | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 0b77eb1..5b4d2e1 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1434,6 +1434,10 @@ _git_pull ()
>  	__git_complete_remote_or_refspec
>  }
>  
> +__git_push_recurse_submodules_options="
> +	check on-demand
> +"

Most of the existing completion functions do not seem to define separate variables like this; instead, they literally embed their choices at the point of use.

Is it expected that the same set of choices will appear in the completion of many other subcommand options? [jc: Cc'ed Heiko so that we can sanity check the answer to this question]. If so, the variable may be justified; otherwise, not.

Show 11 quoted lines
>  _git_push ()
>  {
>  	case "$prev" in
> @@ -1446,10 +1450,15 @@ _git_push ()
>  		__gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
>  		return
>  		;;
> +	--recurse-submodules=*)
> +		__gitcomp "$__git_push_recurse_submodules_options" "" "${cur##--recurse-submodules=}"
> +		return
> +		;;

Owners of the completion script, does this look reasonable? [jc: Cc'ed Felipe for this]

This is a tangent, but why is it a double-hash "##" not a single-hash "#", other than "because all others use ##"?

Show 8 quoted lines
>  	--*)
>  		__gitcomp "
>  			--all --mirror --tags --dry-run --force --verbose
>  			--receive-pack= --repo= --set-upstream
> +			--recurse-submodules=
>  		"
>  		return
>  		;;
Felipe Contreras· Dec 12, 2012, 22:30 UTC · re: Junio C Hamano · lore

Re: [PATCH] completion: add option --recurse-submodules to "git push"

On Fri, Dec 7, 2012 at 11:21 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 45 quoted lines
> Steffen Jaeckel <steffen.jaeckel@stzedn.de> writes:
>
>> Signed-off-by: Steffen Jaeckel <steffen.jaeckel@stzedn.de>
>> ---
>>  contrib/completion/git-completion.bash | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index 0b77eb1..5b4d2e1 100644
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -1434,6 +1434,10 @@ _git_pull ()
>>       __git_complete_remote_or_refspec
>>  }
>>
>> +__git_push_recurse_submodules_options="
>> +     check on-demand
>> +"
>
> Most of the existing completion functions do not seem to define
> separate variables like this; instead, they literally embed their
> choices at the point of use.
>
> Is it expected that the same set of choices will appear in the
> completion of many other subcommand options?  [jc: Cc'ed Heiko so
> that we can sanity check the answer to this question].  If so, the
> variable may be justified; otherwise, not.
>
>>  _git_push ()
>>  {
>>       case "$prev" in
>> @@ -1446,10 +1450,15 @@ _git_push ()
>>               __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
>>               return
>>               ;;
>> +     --recurse-submodules=*)
>> +             __gitcomp "$__git_push_recurse_submodules_options" "" "${cur##--recurse-submodules=}"
>> +             return
>> +             ;;
>
> Owners of the completion script, does this look reasonable?
> [jc: Cc'ed Felipe for this]
>
> This is a tangent, but why is it a double-hash "##" not a
> single-hash "#", other than "because all others use ##"?
Seems OK by me, but I agree, the options should be inline.
-- 
Felipe Contreras
Heiko Voigt· Dec 18, 2012, 17:59 UTC · re: Junio C Hamano · lore

Re: Re: [PATCH] completion: add option --recurse-submodules to "git push"

Hi,
sorry for the late reply.
On Fri, Dec 07, 2012 at 09:21:33AM -0800, Junio C Hamano wrote:
Show 27 quoted lines
> Steffen Jaeckel <steffen.jaeckel@stzedn.de> writes:
> 
> > Signed-off-by: Steffen Jaeckel <steffen.jaeckel@stzedn.de>
> > ---
> >  contrib/completion/git-completion.bash | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> > index 0b77eb1..5b4d2e1 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -1434,6 +1434,10 @@ _git_pull ()
> >  	__git_complete_remote_or_refspec
> >  }
> >  
> > +__git_push_recurse_submodules_options="
> > +	check on-demand
> > +"
> 
> Most of the existing completion functions do not seem to define
> separate variables like this; instead, they literally embed their
> choices at the point of use.
> 
> Is it expected that the same set of choices will appear in the
> completion of many other subcommand options?  [jc: Cc'ed Heiko so
> that we can sanity check the answer to this question].  If so, the
> variable may be justified; otherwise, not.

No I think not. At least not exactly the same. check will be limited to push since it only makes sense there. on-demand on the other hand is already used for fetch and pull. Currently no more possible uses come to my mind. checkout and others will learn to traverse submodules but that will most likely be a boolean (to switch it on and off).

CC'ed Jens so he can also take a look.
Cheers Heiko

← back to recent threads