# [PATCH] git-completion: offer references for 'git reflog'

4 messages from 2011-09-25 to 2011-10-04. Participants: Michael Schubert, Junio C Hamano.
Thread: https://gitlist.dev/t/28490

## Michael Schubert, 2011-09-25 10:42

Subject: [PATCH] git-completion: offer references for 'git reflog'
Message-ID: <4E7F05A6.30505@elegosoft.com>
URL: https://gitlist.dev/e/4E7F05A6.30505%40elegosoft.com

```
'git reflog <ref>' is a valid command, therefore offer reference
completion.

Signed-off-by: Michael Schubert <mschub@elegosoft.com>
---
 contrib/completion/git-completion.bash |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8648a36..63d0f08 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1774,7 +1774,7 @@ _git_reflog ()
 	local subcommand="$(__git_find_on_cmdline "$subcommands")"
 
 	if [ -z "$subcommand" ]; then
-		__gitcomp "$subcommands"
+		__gitcomp "$subcommands $(__git_refs)"
 	else
 		__gitcomp "$(__git_refs)"
 	fi
-- 
1.7.7.rc3

```

## Michael Schubert, 2011-10-04 08:48

Subject: Re: [PATCH] git-completion: offer references for 'git reflog'
Message-ID: <4E8AC85A.2070009@elegosoft.com>
URL: https://gitlist.dev/e/4E8AC85A.2070009%40elegosoft.com
In-Reply-To: <4E7F05A6.30505@elegosoft.com>

```
On 09/25/2011 12:42 PM, Michael Schubert wrote:
> 'git reflog <ref>' is a valid command, therefore offer reference
> completion.
> 
> Signed-off-by: Michael Schubert <mschub@elegosoft.com>
> ---
>  contrib/completion/git-completion.bash |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 8648a36..63d0f08 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1774,7 +1774,7 @@ _git_reflog ()
>  	local subcommand="$(__git_find_on_cmdline "$subcommands")"
>  
>  	if [ -z "$subcommand" ]; then
> -		__gitcomp "$subcommands"
> +		__gitcomp "$subcommands $(__git_refs)"
>  	else
>  		__gitcomp "$(__git_refs)"
>  	fi

Ping.?

```

## Junio C Hamano, 2011-10-04 17:05

Subject: Re: [PATCH] git-completion: offer references for 'git reflog'
Message-ID: <7v7h4kd6vg.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v7h4kd6vg.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4E8AC85A.2070009@elegosoft.com>

```
Michael Schubert <mschub@elegosoft.com> writes:

> On 09/25/2011 12:42 PM, Michael Schubert wrote:
>> 'git reflog <ref>' is a valid command, therefore offer reference
>> completion.
>> 
>> Signed-off-by: Michael Schubert <mschub@elegosoft.com>
>> ---
>>  contrib/completion/git-completion.bash |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>> 
>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>> index 8648a36..63d0f08 100755
>> --- a/contrib/completion/git-completion.bash
>> +++ b/contrib/completion/git-completion.bash
>> @@ -1774,7 +1774,7 @@ _git_reflog ()
>>  	local subcommand="$(__git_find_on_cmdline "$subcommands")"
>>  
>>  	if [ -z "$subcommand" ]; then
>> -		__gitcomp "$subcommands"
>> +		__gitcomp "$subcommands $(__git_refs)"
>>  	else
>>  		__gitcomp "$(__git_refs)"
>>  	fi
>
> Ping.?

Personally I think this change will give much less pleasant user
experience.  This is what I currently get:

    $ git reflog <TAB>
    delete  expire  show
    $ git reflog

and after learning the "show" subcommand exists, this is what I would get:

    $ git reflog show <TAB>
    Display all 626 possibilities? (y or n)

With your change, I would get:

    $ git reflog <TAB>
    Display all 629 possibilities? (y or n)

and do not even have a chance to remind myself if the subcommand to drop
a reflog was "delete" or "remove".

At least when I know that I want to be reminded of refs to $verb (use one
of the three subcommands I currently get in place of the "$verb"), I can
say

    $ git reflog $verb <TAB>

and at that point, I am willing to wade thru list of 600+ refs.

```

## Michael Schubert, 2011-10-04 19:34

Subject: Re: [PATCH] git-completion: offer references for 'git reflog'
Message-ID: <4E8B5FC1.3080902@elegosoft.com>
URL: https://gitlist.dev/e/4E8B5FC1.3080902%40elegosoft.com
In-Reply-To: <7v7h4kd6vg.fsf@alter.siamese.dyndns.org>

```
On 10/04/2011 07:05 PM, Junio C Hamano wrote:
> Michael Schubert <mschub@elegosoft.com> writes:
> 
>> On 09/25/2011 12:42 PM, Michael Schubert wrote:
>>> 'git reflog <ref>' is a valid command, therefore offer reference
>>> completion.
>>>
>>> Signed-off-by: Michael Schubert <mschub@elegosoft.com>
>>> ---
>>>  contrib/completion/git-completion.bash |    2 +-
>>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
>>> index 8648a36..63d0f08 100755
>>> --- a/contrib/completion/git-completion.bash
>>> +++ b/contrib/completion/git-completion.bash
>>> @@ -1774,7 +1774,7 @@ _git_reflog ()
>>>  	local subcommand="$(__git_find_on_cmdline "$subcommands")"
>>>  
>>>  	if [ -z "$subcommand" ]; then
>>> -		__gitcomp "$subcommands"
>>> +		__gitcomp "$subcommands $(__git_refs)"
>>>  	else
>>>  		__gitcomp "$(__git_refs)"
>>>  	fi
>>
>> Ping.?
> 
> Personally I think this change will give much less pleasant user
> experience.  This is what I currently get:
> 
>     $ git reflog <TAB>
>     delete  expire  show
>     $ git reflog
> 
> and after learning the "show" subcommand exists, this is what I would get:
> 
>     $ git reflog show <TAB>
>     Display all 626 possibilities? (y or n)
> 
> With your change, I would get:
> 
>     $ git reflog <TAB>
>     Display all 629 possibilities? (y or n)

Yeah, that would be a tradeoff. IMHO the current behaviour is pleasant
for newcomers, but (I guess) most users would rather enjoy "the short form".

> and do not even have a chance to remind myself if the subcommand to drop
> a reflog was "delete" or "remove".
> 
> At least when I know that I want to be reminded of refs to $verb (use one
> of the three subcommands I currently get in place of the "$verb"), I can
> say
> 
>     $ git reflog $verb <TAB>
> 
> and at that point, I am willing to wade thru list of 600+ refs.

```
