Thread (4 messages) 4 messages, 2 authors, 2016-06-16

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help