git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5 3/7] tag: add format specifier to gpg_verify_tag

From
Jeff King <peff@peff.net>
Date
Jan 17, 2017, 17:25 UTC
Message-ID
<20170117172531.bahjekbj3om43gtq@sigill.intra.peff.net>
In-Reply-To
<20170117165724.2hbyfdzrhrmro54b@LykOS.localdomain>
On Tue, Jan 17, 2017 at 11:57:25AM -0500, Santiago Torres wrote:
Show 13 quoted lines
> > Having read through the rest of the series, it looks like you'd
> > sometimes have to do:
> 
> IIRC, we did this to make the diff "simpler". It also feeds odd that the
> call chain is the following:
> 
>     verify_and_format_tag()
>     gpg_verify_tag()
>     run_gpg_verification()
> 
> I'm afraid that adding yet another wrapper would further convolute the
> call chain. If you think this is not an issue, I could easily do it. Do
> you have any suggested name for the wrapper?

Actually, looking at the callsites, I think they are fine to just call pretty_print_ref() themselves, and I don't think it actually matters if it happens before or after the verification.

So I think you could just throw out patch 3 entirely and squash these hunks into patches 4 and 5:

diff --git a/builtin/tag.c b/builtin/tag.c
index 9da11e0c2..fab9fa8f9 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -111,10 +111,12 @@ static int verify_tag(const char *name, const char *ref,
 	char *fmt_pretty = cb_data;
 	flags = GPG_VERIFY_VERBOSE;
 
-	if (fmt_pretty)
+	if (fmt_pretty) {
 		flags = GPG_VERIFY_QUIET;
+		pretty_print_ref(name, sha1, fmt_pretty);
+	}
 
-	return verify_and_format_tag(sha1, ref, fmt_pretty, flags);
+	return gpg_verify_tag(sha1, ref, flags);
 }
 
 static int do_sign(struct strbuf *buffer)
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 212449f47..114df1c52 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -58,9 +58,15 @@ int cmd_verify_tag(int argc, const char **argv, const char *prefix)
 	while (i < argc) {
 		unsigned char sha1[20];
 		const char *name = argv[i++];
-		if (get_sha1(name, sha1))
+
+		if (get_sha1(name, sha1)) {
 			had_error = !!error("tag '%s' not found.", name);
-		else if (verify_and_format_tag(sha1, name, fmt_pretty, flags))
+			continue;
+		}
+
+		if (fmt_pretty)
+			pretty_print_ref(name, sha1, fmt_pretty);
+		if (gpg_verify_tag(sha1, name, flags))
 			had_error = 1;
 	}
 	return had_error;

You could make the diff in the second one simpler by skipping the
"continue" and just doing the whole thing in an "else" block. But IMHO
the continue-on-error makes the logic more clear.

-Peff
Previous: Santiago TorresNext: Jeff King
Message 16 of 21 in “Add --format to tag verification”
  1. 0/7 Add --format to tag verificationsantiago@nyu.edu, Jan 15, 2017
  2. 1/7 gpg-interface, tag: add GPG_VERIFY_QUIET flagsantiago@nyu.edu, Jan 15, 2017
  3. 2/7 ref-filter: add function to print single ref_array_itemsantiago@nyu.edu, Jan 15, 2017
  4. 7/7 t/t7004-tag: Add --format specifier testssantiago@nyu.edu, Jan 15, 2017
  5. Jeff KingJan 17, 2017
  6. 6/7 t/t7030-verify-tag: Add --format specifier testssantiago@nyu.edu, Jan 15, 2017
  7. 5/7 builtin/tag: add --format argument for tag -vsantiago@nyu.edu, Jan 15, 2017
  8. Jeff KingJan 17, 2017
  9. Santiago TorresJan 17, 2017
  10. Jeff KingJan 17, 2017
  11. Santiago TorresJan 17, 2017
  12. 3/7 tag: add format specifier to gpg_verify_tagsantiago@nyu.edu, Jan 15, 2017
  13. Jeff KingJan 17, 2017
  14. Jeff KingJan 17, 2017
  15. Santiago TorresJan 17, 2017
  16. Jeff KingJan 17, 2017
  17. Jeff KingJan 17, 2017
  18. Santiago TorresJan 17, 2017
  19. Jeff KingJan 17, 2017
  20. 4/7 builtin/verify-tag: add --format to verify-tagsantiago@nyu.edu, Jan 15, 2017
  21. Jeff KingJan 17, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.