Re: [RFC/PATCH] verify-tag: add --check-name flag
- From
Santiago Torres <santiago@nyu.edu>
- Date
- Jun 7, 2016, 21:13 UTC
- Message-ID
- <20160607211313.GD24676@LykOS.localdomain>
- In-Reply-To
- <20160607210856.GA6807@sigill.intra.peff.net>
On Tue, Jun 07, 2016 at 05:08:56PM -0400, Jeff King wrote:
Show 19 quoted lines
> On Tue, Jun 07, 2016 at 03:56:08PM -0400, santiago@nyu.edu wrote:
>
> > diff --git a/tag.c b/tag.c
> > index d1dcd18..591b31e 100644
> > --- a/tag.c
> > +++ b/tag.c
> > @@ -55,6 +55,14 @@ int gpg_verify_tag(const unsigned char *sha1, const char *name_to_report,
> >
> > ret = run_gpg_verify(buf, size, flags);
> >
> > + if (flags & TAG_VERIFY_NAME) {
> > + struct tag tag_info;
> > + ret += parse_tag_buffer(&tag_info, buf, size);
> > + if strncmp(tag_info.tag, name_to_report, size)
> > + ret += error("tag name doesn't match tag header!(%s)",
> > + tag_info.tag);
> > + }
>
> Er, is this C? :)Yeah, I promise this would be a "cleaner" patch in the future :P
Show 9 quoted lines
> > I think the general idea of an option to check the tag-name is a good > one. But there are some corner cases to think about: > > 1. What name are we comparing against? Presumably it comes from the > name the user gave us that resolved to the tag object. We would > want to shorten "refs/tags/v1.4" to just "v1.4", I would think. > > Would a user ever want to pass a different tagname?
Yeah, I was wondering this. It might be convenient for them to call
git verify-tag --check-name [name] [ref]
In case the ref doesn't match the tag. I can do it either way, although the second case would be cumbersome.
> > 2. What do we do for non-annotated tags? Is it always a failure?
Right now, verify-tag fails with non-annotated tags like this:
santiago at ~/.../git ✔ ./git-verify-tag master
error: master: cannot verify a non-tag object of type commit.Although we could change this behavior. I would have to check how git tag -v works as this behavior might change.
> > -Peff