threads / patch / 46957

patchcompletion: add remaining flags to checkout

Subject: [PATCH v1 1/1] completion: add remaining flags to checkout

## tl;dr

8 messages between Oct 12, 2017 and Oct 25, 2017. Diffs are folded; open one to read it.

replies: 7people: 3as markdown or json

Thomas Braun· Oct 12, 2017, 12:20 UTC · lore

In the commits 1d0fa898 (checkout: add --ignore-other-wortrees, 2015-01-03), 1fc458d9 (builtin/checkout: add --recurse-submodules switch, 2017-03-14), 870ebdb9 (checkout: add --progress option, 2015-11-01), 08d595dc (checkout: add --ignore-skip-worktree-bits in sparse checkout mode, 2013-04-13), 1d0fa898 (checkout: add --ignore-other-wortrees, 2015-01-03), 32669671 (checkout: introduce --detach synonym for "git checkout foo^{commit}", 2011-02-08) and db941099 (checkout -f: allow ignoring unmerged paths when checking out of the index, 2008-08-30) checkout gained new flags but the completion was not updated, although these flags are useful completions. Add them.

Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
---
 contrib/completion/git-completion.bash | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Show changes to contrib/completion/git-completion.bash +3 −1
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index d934417475..393d4ae230 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1250,7 +1250,9 @@ _git_checkout ()
 	--*)
 		__gitcomp "
 			--quiet --ours --theirs --track --no-track --merge
-			--conflict= --orphan --patch
+			--conflict= --orphan --patch --detach --progress --no-progress
+			--force --ignore-skip-worktree-bits --ignore-other-worktrees
+			--recurse-submodules --no-recurse-submodules
 			"
 		;;
 	*)
-- 
2.15.0.rc0.245.g6d586db062
Johannes Sixt· Oct 12, 2017, 16:50 UTC · re: Thomas Braun · lore

Re: [PATCH v1 1/1] completion: add remaining flags to checkout

Am 12.10.2017 um 14:20 schrieb Thomas Braun:
Show 27 quoted lines
> In the commits 1d0fa898 (checkout: add --ignore-other-wortrees,
> 2015-01-03), 1fc458d9 (builtin/checkout: add --recurse-submodules switch,
> 2017-03-14), 870ebdb9 (checkout: add --progress option, 2015-11-01),
> 08d595dc (checkout: add --ignore-skip-worktree-bits in sparse checkout
> mode, 2013-04-13), 1d0fa898 (checkout: add --ignore-other-wortrees,
> 2015-01-03), 32669671 (checkout: introduce --detach synonym for "git
> checkout foo^{commit}", 2011-02-08) and db941099 (checkout -f: allow
> ignoring unmerged paths when checking out of the index, 2008-08-30)
> checkout gained new flags but the completion was not updated, although
> these flags are useful completions. Add them.
> 
> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
> ---
>   contrib/completion/git-completion.bash | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index d934417475..393d4ae230 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1250,7 +1250,9 @@ _git_checkout ()
>   	--*)
>   		__gitcomp "
>   			--quiet --ours --theirs --track --no-track --merge
> -			--conflict= --orphan --patch
> +			--conflict= --orphan --patch --detach --progress --no-progress
> +			--force --ignore-skip-worktree-bits --ignore-other-worktrees

Destructive and dangerous options are typically not offered by command completion. You should omit all three in the line above, IMO.

Furthermore, --progress and --no-progress are not useful in daily work on the command line, I think. By offering them, --p<TAB> would not complete to --patch anymore, you would need --pa<TAB>. You should omit them, too.

Show 5 quoted lines
> +			--recurse-submodules --no-recurse-submodules
>   			"
>   		;;
>   	*)
> 
-- Hannes
Johannes Sixt· Oct 12, 2017, 20:30 UTC · re: Johannes Sixt · lore

Re: [PATCH v1 1/1] completion: add remaining flags to checkout

Am 12.10.2017 um 18:50 schrieb Johannes Sixt:
Show 5 quoted lines
> Am 12.10.2017 um 14:20 schrieb Thomas Braun:
>> +            --force --ignore-skip-worktree-bits --ignore-other-worktrees
> 
> Destructive and dangerous options are typically not offered by command 
> completion. You should omit all three in the line above, IMO.

Ah, no, only --force and --ignore-other-worktrees are dangerous, --ignore-skip-worktree-bits is not.

-- Hannes
Thomas Braun· Oct 24, 2017, 13:18 UTC · re: Johannes Sixt · lore

Re: [PATCH v1 1/1] completion: add remaining flags to checkout

Show 39 quoted lines
> Johannes Sixt <j6t@kdbg.org> hat am 12. Oktober 2017 um 18:50 geschrieben:
> 
> 
> Am 12.10.2017 um 14:20 schrieb Thomas Braun:
> > In the commits 1d0fa898 (checkout: add --ignore-other-wortrees,
> > 2015-01-03), 1fc458d9 (builtin/checkout: add --recurse-submodules switch,
> > 2017-03-14), 870ebdb9 (checkout: add --progress option, 2015-11-01),
> > 08d595dc (checkout: add --ignore-skip-worktree-bits in sparse checkout
> > mode, 2013-04-13), 1d0fa898 (checkout: add --ignore-other-wortrees,
> > 2015-01-03), 32669671 (checkout: introduce --detach synonym for "git
> > checkout foo^{commit}", 2011-02-08) and db941099 (checkout -f: allow
> > ignoring unmerged paths when checking out of the index, 2008-08-30)
> > checkout gained new flags but the completion was not updated, although
> > these flags are useful completions. Add them.
> > 
> > Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
> > ---
> >   contrib/completion/git-completion.bash | 4 +++-
> >   1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> > index d934417475..393d4ae230 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -1250,7 +1250,9 @@ _git_checkout ()
> >   	--*)
> >   		__gitcomp "
> >   			--quiet --ours --theirs --track --no-track --merge
> > -			--conflict= --orphan --patch
> > +			--conflict= --orphan --patch --detach --progress --no-progress
> > +			--force --ignore-skip-worktree-bits --ignore-other-worktrees
> 
> Destructive and dangerous options are typically not offered by command 
> completion. You should omit all three in the line above, IMO.
> 
> Furthermore, --progress and --no-progress are not useful in daily work 
> on the command line, I think. By offering them, --p<TAB> would not 
> complete to --patch anymore, you would need --pa<TAB>. You should omit 
> them, too.
Thanks for the review.
I've fixed that for the next reroll.
Thomas Braun· Oct 24, 2017, 13:19 UTC · re: Thomas Braun · lore

[PATCH v2 1/1] completion: add remaining flags to checkout

In the commits 1fc458d9 (builtin/checkout: add --recurse-submodules switch, 2017-03-14), 08d595dc (checkout: add --ignore-skip-worktree-bits in sparse checkout mode, 2013-04-13) and 32669671 (checkout: introduce --detach synonym for "git checkout foo^{commit}", 2011-02-08) checkout gained new flags but the completion was not updated, although these flags are useful completions. Add them.

The flags --force and --ignore-other-worktrees are not added as they are potentially dangerous.

The flags --progress and --no-progress are only useful for scripting and are therefore also not included.

Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
---
 contrib/completion/git-completion.bash | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Show changes to contrib/completion/git-completion.bash +2 −1
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index d934417475..eb6ade6974 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1250,7 +1250,8 @@ _git_checkout ()
 	--*)
 		__gitcomp "
 			--quiet --ours --theirs --track --no-track --merge
-			--conflict= --orphan --patch
+			--conflict= --orphan --patch --detach --ignore-skip-worktree-bits
+			--recurse-submodules --no-recurse-submodules
 			"
 		;;
 	*)
-- 
2.15.0.rc0.245.g6d586db062
Johannes Sixt· Oct 24, 2017, 16:45 UTC · re: Thomas Braun · lore

Re: [PATCH v2 1/1] completion: add remaining flags to checkout

Am 24.10.2017 um 15:19 schrieb Thomas Braun:
Show 33 quoted lines
> In the commits 1fc458d9 (builtin/checkout: add --recurse-submodules
> switch, 2017-03-14), 08d595dc (checkout: add --ignore-skip-worktree-bits
> in sparse checkout mode, 2013-04-13) and 32669671 (checkout: introduce
> --detach synonym for "git checkout foo^{commit}", 2011-02-08) checkout
> gained new flags but the completion was not updated, although these flags
> are useful completions. Add them.
> 
> The flags --force and --ignore-other-worktrees are not added as they are
> potentially dangerous.
> 
> The flags --progress and --no-progress are only useful for scripting and are
> therefore also not included.
> 
> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
> ---
>   contrib/completion/git-completion.bash | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index d934417475..eb6ade6974 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1250,7 +1250,8 @@ _git_checkout ()
>   	--*)
>   		__gitcomp "
>   			--quiet --ours --theirs --track --no-track --merge
> -			--conflict= --orphan --patch
> +			--conflict= --orphan --patch --detach --ignore-skip-worktree-bits
> +			--recurse-submodules --no-recurse-submodules
>   			"
>   		;;
>   	*)
> 

Looks good to me. Thanks, -- Hannes

Junio C Hamano· Oct 25, 2017, 06:03 UTC · re: Johannes Sixt · lore

Re: [PATCH v2 1/1] completion: add remaining flags to checkout

Johannes Sixt <j6t@kdbg.org> writes:
Show 29 quoted lines
>> The flags --force and --ignore-other-worktrees are not added as they are
>> potentially dangerous.
>>
>> The flags --progress and --no-progress are only useful for scripting and are
>> therefore also not included.
>>
>> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
>> ---
>>   contrib/completion/git-completion.bash | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index d934417475..eb6ade6974 100644
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -1250,7 +1250,8 @@ _git_checkout ()
>>   	--*)
>>   		__gitcomp "
>>   			--quiet --ours --theirs --track --no-track --merge
>> -			--conflict= --orphan --patch
>> +			--conflict= --orphan --patch --detach --ignore-skip-worktree-bits
>> +			--recurse-submodules --no-recurse-submodules
>>   			"
>>   		;;
>>   	*)
>>
>
> Looks good to me. Thanks,
> -- Hannes
Doesn't quite.  This breaks t9902, doesn't it?
Junio C Hamano· Oct 25, 2017, 06:22 UTC · re: Junio C Hamano · lore

Re: [PATCH v2 1/1] completion: add remaining flags to checkout

Junio C Hamano <gitster@pobox.com> writes:
Show 33 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
>
>>> The flags --force and --ignore-other-worktrees are not added as they are
>>> potentially dangerous.
>>>
>>> The flags --progress and --no-progress are only useful for scripting and are
>>> therefore also not included.
>>>
>>> Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
>>> ---
>>>   contrib/completion/git-completion.bash | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>>> index d934417475..eb6ade6974 100644
>>> --- a/contrib/completion/git-completion.bash
>>> +++ b/contrib/completion/git-completion.bash
>>> @@ -1250,7 +1250,8 @@ _git_checkout ()
>>>   	--*)
>>>   		__gitcomp "
>>>   			--quiet --ours --theirs --track --no-track --merge
>>> -			--conflict= --orphan --patch
>>> +			--conflict= --orphan --patch --detach --ignore-skip-worktree-bits
>>> +			--recurse-submodules --no-recurse-submodules
>>>   			"
>>>   		;;
>>>   	*)
>>>
>>
>> Looks good to me. Thanks,
>> -- Hannes
>
> Doesn't quite.  This breaks t9902, doesn't it?
I've queued it with the following squashed in.
 t/t9902-completion.sh | 4 ++++
 1 file changed, 4 insertions(+)
Show changes to t/t9902-completion.sh +4 −0
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 2cb999ecfa..fc614dcbfa 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -1245,6 +1245,10 @@ test_expect_success 'double dash "git checkout"' '
 	--conflict=
 	--orphan Z
 	--patch Z
+	--detach Z
+	--ignore-skip-worktree-bits Z
+	--recurse-submodules Z
+	--no-recurse-submodules Z
 	EOF
 '
 

← back to recent threads