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

[PATCH v8 0/6] Move PGP verification out of verify-tag

From
santiago@nyu.edu <santiago@nyu.edu>
Date
Apr 22, 2016, 14:51 UTC
Message-ID
<1461336725-29915-1-git-send-email-santiago@nyu.edu>
From: Santiago Torres <santiago@nyu.edu>

This is a follow up of [1], [2], [3], [4], [5], [6], and [7]. patches 1/6, 2/6, and 3/6, are the same as the corresponding commits in pu.

v8:  
Minor nits, I decided to quickly reroll to drop the extern qualifier in tag.c:
  * Eric pointed out that we could block-scope the declaration of name and sha1
    in b/verify-tag.c, for 4/6
  * There was a typo in 6/6
  * I dropped the extern qualifier in tag.c for 5/6 as suggested by Ramsay
    Jones[8]

v7: Mostly style/clarity changes. Thanks Peff, Eric and Junio for the feedback! In summary:

 * Eric pointed out issues with 3/6's commit message. It doesn't match the one 
   in pu though. I also took the opportunity to update payload_size to a size_t
   as Peff suggested.
 * 4/6 I updated report_name to name_to_report, I updated the commit message 
   and addressed some nits in the code, one of the fixes removed all three nits
   that Eric pointed out. I updated 5/6 to match these changes
 * I gave the commit message on 6/6 another go.
v6: 
 * As Junio suggested, updated 4/6, to include the name argument and the
   ternary operator to provide more descriptive error messages. I propagated
   these changes to 5/6 and 6/6 as well. I'm unsure about the 80-column
   on 4/6, the ternary operator is rather long.
 * Updated and reviewed the commit messages based on Eric and Junio's
   feedback

v5: Added helpful feedback by Eric

 * Reordering of the patches, to avoid temporal inclusion of a regression
 * Fix typos here and there.
 * Review commit messages, as some weren't representative of what the patches
   were doing anymore.
 * Updated t7030 to include Peff's suggestion, and added a helped-by line here
   as it was mostly Peff's code.
 * Updated the error-handling/printing issues that were introduced when.
   libifying the verify_tag function.
v4:
Thanks Eric, Jeff, and Hannes for the feedback.
 * I relocated the sigchain_push call so it comes after the error on
   gpg-interface (thanks Hannnes for catching this).
 * I updated the unit test to match the discussion on [3]. Now it generates
   the expected output of the tag on the fly for comparison. (This is just
   copy and paste from [3], but I verified that it works by breaking the
   while)
 * I split moving the code and renaming the variables into two patches so
   these are easier to review.
 * I used an adapter on builtin/tag.c instead of redefining all the fn*
   declarations everywhere. This introduces an issue with the way git tag -v
   resolves refnames though. I added a new commit to restore the previous
   behavior of git-tag. I'm not sure if I should've split this into two commits
   though.

v3: Thanks Eric, Jeff, for the feedback.

 * I separated the patch in multiple sub-patches.
 * I compared the behavior of previous git tag -v and git verify-tag 
   invocations to make sure the behavior is the same
 * I dropped the multi-line comment, as suggested.
 * I fixed the issue with the missing brackets in the while (this is 
   now detected by the test).
v2:
 * I moved the pgp-verification code to tag.c 
 * I added extra arguments so git tag -v and git verify-tag both work
   with the same function
 * Relocated the SIGPIPE handling code in verify-tag to gpg-interface
v1:
 
The verify tag function is just a thin wrapper around the verify-tag
command. We can avoid one fork call by doing the verification inside
the tag builtin instead.

This applies on v2.8.0. Thanks! -Santiago

[1] http://thread.gmane.org/gmane.comp.version-control.git/287649 [2] http://thread.gmane.org/gmane.comp.version-control.git/289836 [3] http://thread.gmane.org/gmane.comp.version-control.git/290608 [4] http://thread.gmane.org/gmane.comp.version-control.git/290731 [5] http://thread.gmane.org/gmane.comp.version-control.git/290790 [6] http://thread.gmane.org/gmane.comp.version-control.git/291780 [7] http://thread.gmane.org/gmane.comp.version-control.git/291887 [8] http://thread.gmane.org/gmane.comp.version-control.git/292029

Santiago Torres (6):
  builtin/verify-tag.c: ignore SIGPIPE in gpg-interface
  t7030: test verifying multiple tags
  verify-tag: update variable name and type
  verify-tag: prepare verify_tag for libification
  verify-tag: move tag verification code to tag.c
  tag -v: verify directly rather than exec-ing verify-tag
 builtin/tag.c         |  8 +------
 builtin/verify-tag.c  | 61 ++++++---------------------------------------------
 gpg-interface.c       |  2 ++
 t/t7030-verify-tag.sh | 13 +++++++++++
 tag.c                 | 53 ++++++++++++++++++++++++++++++++++++++++++++
 tag.h                 |  2 ++
 6 files changed, 78 insertions(+), 61 deletions(-)
-- 
2.8.0
Next: santiago@nyu.edu
Message 1 of 9 in “Move PGP verification out of verify-tag”
  1. 0/6 Move PGP verification out of verify-tagsantiago@nyu.edu, Apr 22, 2016
  2. 1/6 builtin/verify-tag.c: ignore SIGPIPE in gpg-interfacesantiago@nyu.edu, Apr 22, 2016
  3. 2/6 t7030: test verifying multiple tagssantiago@nyu.edu, Apr 22, 2016
  4. 3/6 verify-tag: update variable name and typesantiago@nyu.edu, Apr 22, 2016
  5. 4/6 verify-tag: prepare verify_tag for libificationsantiago@nyu.edu, Apr 22, 2016
  6. 5/6 verify-tag: move tag verification code to tag.csantiago@nyu.edu, Apr 22, 2016
  7. Eric SunshineApr 22, 2016
  8. 6/6 tag -v: verify directly rather than exec-ing verify-tagsantiago@nyu.edu, Apr 22, 2016
  9. Eric SunshineApr 22, 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.