Re: [RFC/PATCH] verify-tag: add --check-name flag
flat view
From: Santiago Torres <hidden>
Date: 2016-06-16 02:19:47
On Tue, Jun 07, 2016 at 05:08:56PM -0400, Jeff King wrote:
On Tue, Jun 07, 2016 at 03:56:08PM -0400, santiago@nyu.edu wrote:quoted
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
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