All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] completion: verify-tag is not plumbing
@ 2016-01-31 12:44 John Keeping
  2016-01-31 13:37 ` SZEDER Gábor
  0 siblings, 1 reply; 4+ messages in thread
From: John Keeping @ 2016-01-31 12:44 UTC (permalink / raw)
  To: git; +Cc: SZEDER Gábor, John Keeping

According to command-list.txt, verify-tag is an ancillary interrogator,
which means that it should be completed by "git verify-<TAB>" in the
same way as verify-commit.

Remove it from the list of plumbing commands so that it is treated as
porcelain and completed.

Signed-off-by: John Keeping <john@keeping.me.uk>
---
 contrib/completion/git-completion.bash | 1 -
 1 file changed, 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 51f5223..250788a 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -728,7 +728,6 @@ __git_list_porcelain_commands ()
 		write-tree)       : plumbing;;
 		var)              : infrequent;;
 		verify-pack)      : infrequent;;
-		verify-tag)       : plumbing;;
 		*) echo $i;;
 		esac
 	done
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: verify-tag is not plumbing
  2016-01-31 12:44 [PATCH] completion: verify-tag is not plumbing John Keeping
@ 2016-01-31 13:37 ` SZEDER Gábor
  2016-02-01 10:44   ` John Keeping
  0 siblings, 1 reply; 4+ messages in thread
From: SZEDER Gábor @ 2016-01-31 13:37 UTC (permalink / raw)
  To: John Keeping; +Cc: git


Quoting John Keeping <john@keeping.me.uk>:

> According to command-list.txt, verify-tag is an ancillary interrogator,
> which means that it should be completed by "git verify-<TAB>" in the
> same way as verify-commit.
>
> Remove it from the list of plumbing commands so that it is treated as
> porcelain and completed.

I'm not sure.  There are commands among the ancillary interrogators  
that are basically porcelains (e.g. blame), while some are more like  
plumbing (e.g. rerere, rev-parse).  In general the completion script  
supports the former but not the latter commands.

Now, the real porcelain-ish way to verify a tag is via 'git tag  
-v|--verify', and according to a925c6f165a3 (bash: Classify more  
commends out of completion., 2007-02-04), the commit removing  
verify-tag from the completed commands, verify-tag was kept around for  
backwards compatibility reasons.  OTOH verify-commit was introduced in  
d07b00b7f31d (verify-commit: scriptable commit signature verification,  
2014-06-23), and as the subject line states it was intended more as a  
plumbing command.

So I think we should keep excluding verify-tag from the list of  
porcelain commands in the completion script, and it was an oversight  
not to exclude verify-commit as well when it was introduced.


Gábor

> Signed-off-by: John Keeping <john@keeping.me.uk>
> ---
>  contrib/completion/git-completion.bash | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/contrib/completion/git-completion.bash  
> b/contrib/completion/git-completion.bash
> index 51f5223..250788a 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -728,7 +728,6 @@ __git_list_porcelain_commands ()
>  		write-tree)       : plumbing;;
>  		var)              : infrequent;;
>  		verify-pack)      : infrequent;;
> -		verify-tag)       : plumbing;;
>  		*) echo $i;;
>  		esac
>  	done
> -- 
> 2.7.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: verify-tag is not plumbing
  2016-01-31 13:37 ` SZEDER Gábor
@ 2016-02-01 10:44   ` John Keeping
  2016-02-01 18:51     ` Junio C Hamano
  0 siblings, 1 reply; 4+ messages in thread
From: John Keeping @ 2016-02-01 10:44 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: git

On Sun, Jan 31, 2016 at 02:37:59PM +0100, SZEDER Gábor wrote:
> 
> Quoting John Keeping <john@keeping.me.uk>:
> 
> > According to command-list.txt, verify-tag is an ancillary interrogator,
> > which means that it should be completed by "git verify-<TAB>" in the
> > same way as verify-commit.
> >
> > Remove it from the list of plumbing commands so that it is treated as
> > porcelain and completed.
> 
> I'm not sure.  There are commands among the ancillary interrogators
> that are basically porcelains (e.g. blame), while some are more like
> plumbing (e.g. rerere, rev-parse).  In general the completion script
> supports the former but not the latter commands.
> 
> Now, the real porcelain-ish way to verify a tag is via 'git tag
> -v|--verify', and according to a925c6f165a3 (bash: Classify more
> commends out of completion., 2007-02-04), the commit removing
> verify-tag from the completed commands, verify-tag was kept around for
> backwards compatibility reasons.  OTOH verify-commit was introduced in
> d07b00b7f31d (verify-commit: scriptable commit signature verification,
> 2014-06-23), and as the subject line states it was intended more as a
> plumbing command.
> 
> So I think we should keep excluding verify-tag from the list of
> porcelain commands in the completion script, and it was an oversight
> not to exclude verify-commit as well when it was introduced.

I can accept that argument about verify-commit and verify-tag, but
listing verify-tag as plumbing is incorrect according to
command-list.txt (and thus git(1)).  If we're going to classify
commands, shouldn't we be consistent in how we do so?

> > Signed-off-by: John Keeping <john@keeping.me.uk>
> > ---
> >  contrib/completion/git-completion.bash | 1 -
> >  1 file changed, 1 deletion(-)
> >
> > diff --git a/contrib/completion/git-completion.bash
> > b/contrib/completion/git-completion.bash
> > index 51f5223..250788a 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -728,7 +728,6 @@ __git_list_porcelain_commands ()
> >  		write-tree)       : plumbing;;
> >  		var)              : infrequent;;
> >  		verify-pack)      : infrequent;;
> > -		verify-tag)       : plumbing;;
> >  		*) echo $i;;
> >  		esac
> >  	done
> > --
> > 2.7.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] completion: verify-tag is not plumbing
  2016-02-01 10:44   ` John Keeping
@ 2016-02-01 18:51     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2016-02-01 18:51 UTC (permalink / raw)
  To: John Keeping; +Cc: SZEDER Gábor, git

John Keeping <john@keeping.me.uk> writes:

> I can accept that argument about verify-commit and verify-tag, but
> listing verify-tag as plumbing is incorrect according to
> command-list.txt (and thus git(1)).  If we're going to classify
> commands, shouldn't we be consistent in how we do so?

These are not meant to be "classifications", but "justifications".
When somebody asks "why isn't this command tab-completed?", you can
find the explanation e.g. "because it is rarely used".

A command being 'plumbing' does not have to make it automatically
ineligible from getting tab-completed.  For some small tasks,
running a plumbing command may be the easiest way to achieve them in
the interactive session, and it helps to have tab-completion for
such a plumbing command (e.g. "git apply" is completed, IIRC).

Also often the line between plumbing and Porcelain is somewhat
blurry.  I'd consider ancillaryX categories in command-list.txt a
cop-out myself.

In this particular case, saying "better use 'tag --verify'" there
instead of "plumbing" may be more helpful for those who are reading
this script.

>> > Signed-off-by: John Keeping <john@keeping.me.uk>
>> > ---
>> >  contrib/completion/git-completion.bash | 1 -
>> >  1 file changed, 1 deletion(-)
>> >
>> > diff --git a/contrib/completion/git-completion.bash
>> > b/contrib/completion/git-completion.bash
>> > index 51f5223..250788a 100644
>> > --- a/contrib/completion/git-completion.bash
>> > +++ b/contrib/completion/git-completion.bash
>> > @@ -728,7 +728,6 @@ __git_list_porcelain_commands ()
>> >  		write-tree)       : plumbing;;
>> >  		var)              : infrequent;;
>> >  		verify-pack)      : infrequent;;
>> > -		verify-tag)       : plumbing;;
>> >  		*) echo $i;;
>> >  		esac
>> >  	done
>> > --
>> > 2.7.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-02-01 18:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-31 12:44 [PATCH] completion: verify-tag is not plumbing John Keeping
2016-01-31 13:37 ` SZEDER Gábor
2016-02-01 10:44   ` John Keeping
2016-02-01 18:51     ` Junio C Hamano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.