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

Re: [PATCH v5 4/6] builtin/verify-tag: replace name argument with sha1

From
Santiago Torres <santiago@nyu.edu>
Date
Apr 7, 2016, 03:38 UTC
Message-ID
<20160407033844.GB17848@LykOS>
In-Reply-To
<xmqqa8l6zoqc.fsf@gitster.mtv.corp.google.com>
Show 21 quoted lines
> >  	type = sha1_object_info(sha1, NULL);
> >  	if (type != OBJ_TAG)
> >  		return error("%s: cannot verify a non-tag object of type %s.",
> > -				name, typename(type));
> > +				hex_sha1, typename(type));
> 
> So, if I said
> 
>     $ git verify-tag master
> 
> the code used to take "master" from argv[], fed it to verify_tag()
> as parameter 'name', turned it to the object name of the commit,
> noticed that it is not a tag, and complained that "master: cannot verify".
> 
> With this rewrite, the same invocation would cause "master" to be
> turned into the object name, which is passed to verify_tag() and the
> complaint is an overlong
> 
>     76bece327f490cb344b95ae8f869cbeb89a4d20b: cannot verify a non-tag object of type commit
> 
> That does not sound like a good change at all.

Yep, I agree. At least I believe that we can do better in terms of user feedback.

Show 9 quoted lines
> 
> If you want to support a future caller of a libified version of
> verify_tag() that has a raw object name but not the original name,
> I'd suggest to make this function keep parameter 'name' while adding
> the new parameter 'sha1'.  Then, the error reporting may become:
> 
> 	return error("%s: cannot verify a non-tag object of type '%s'",
> 		     name ? name : sha1_to_hex(sha1), typename(type));
> 
Yep, I'll do some experimenting with this.
Show 5 quoted lines
> and the output would still be useful.  Further improvements may be
> 
>  - rename 'name' to 'report_name' to clarify that the parameter is
>    only used for reporting, and that the tag object to verify is
>    always identified by the new 'sha1' parameter.

This seems to be fundamental. As it was suggested before, making it clear that name is only for feedback purposes is really necessary.

> 
>  - use find_unique_abbrev() to shorten the fallback name displayed in
>  the error message.
I think we can do both. Let me try this out. 
Would you suggest having these changes in a separate patch?

Thanks! -Santiago.

Previous: Junio C HamanoNext: santiago@nyu.edu
Message 16 of 28 in “tag: move PGP verification code to tag.c”
  1. 0/6 tag: move PGP verification code to tag.csantiago@nyu.edu, Apr 5, 2016
  2. 1/6 builtin/verify-tag.c: Ignore SIGPIPE on gpg-interfacesantiago@nyu.edu, Apr 5, 2016
  3. Junio C HamanoApr 6, 2016
  4. 2/6 t7030-verify-tag: Adds validation for multiple tagssantiago@nyu.edu, Apr 5, 2016
  5. Eric SunshineApr 6, 2016
  6. Santiago TorresApr 17, 2016
  7. Eric SunshineApr 17, 2016
  8. Santiago TorresApr 17, 2016
  9. Eric SunshineApr 17, 2016
  10. Junio C HamanoApr 6, 2016
  11. 3/6 builtin/verify-tag: change variable name for readabilitysantiago@nyu.edu, Apr 5, 2016
  12. Junio C HamanoApr 6, 2016
  13. 4/6 builtin/verify-tag: replace name argument with sha1santiago@nyu.edu, Apr 5, 2016
  14. Eric SunshineApr 6, 2016
  15. Junio C HamanoApr 6, 2016
  16. Santiago TorresApr 7, 2016
  17. 5/6 builtin/verify-tag: move verification code to tag.csantiago@nyu.edu, Apr 5, 2016
  18. Junio C HamanoApr 6, 2016
  19. 6/6 tag: use gpg_verify_function in tag -v callsantiago@nyu.edu, Apr 5, 2016
  20. Eric SunshineApr 6, 2016
  21. Santiago TorresApr 5, 2016
  22. Eric SunshineApr 6, 2016
  23. Santiago TorresApr 7, 2016
  24. Eric SunshineApr 7, 2016
  25. Santiago TorresApr 17, 2016
  26. Eric SunshineApr 17, 2016
  27. Junio C HamanoApr 6, 2016
  28. Santiago TorresApr 7, 2016

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.