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

[PATCH v3 00/17] Pulling signed tags

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 9, 2011, 01:01 UTC
Message-ID
<1320800523-5407-1-git-send-email-gitster@pobox.com>

The third iteration of the fourth approach to give more confidence on the authenticity of history, but the third approach of giving GPG signature to individual commits is independently useful and has been rebased on top.

Notable differences from the previous round are:
 - The way to handle multi-line header lines in a commit object is
   officially defined --- the second and subsequent lines begin with a
   single SP to indent them. The "mergetag" header and "gpgsig" header are
   now expressed using it;
 - commit_tree() figures out what "mergetag" extra headers to generate by
   inspecting the annotation added to the util field of parent commits as
   before; it uses a new lower level commit_tree_extended() API to record
   the extra headers.
 - "commit --amend" propagates "mergetag" extra header from the original
   (but not "gpgsig" for obvious reasons).
 . Split GPG interface into its own helper library
 . fetch: do not store peeled tag object names in FETCH_HEAD
 . merge: notice local merging of tags and keep it unwrapped
 . fetch: allow "git fetch $there v1.0" to fetch a tag
 . refs DWIMmery: use the same rule for both "git fetch" and others
 . fmt-merge-msg: avoid early returns
 . fmt-merge-msg: package options into a structure
 . fmt-merge-msg: Add contents of merged tag in the merge message
 . merge: make usage of commit->util more extensible
 . merge: record tag objects without peeling in MERGE_HEAD
   Unchanged from the previous round.
 . commit: copy merged signed tags to headers of merge commit
   The way commit_tree() notices that some parents are signed tags and
   copies them to "mergetag" extra header has been reimplemented by using
   the new commit_tree_extended() API.
 . merge: force edit mode when merging a tag object
   Unchanged.
 . commit: teach --amend to carry forward extra headers
   New. This is the reason commit_tree_extended() was introduced. The
   plumbing "git commit-tree" should learn to read list of extra headers
   and record them to its product to help scripts (e.g. "rebase -i"), but
   it is outside the scope of this series for now.
 . commit: teach --gpg-sign option
 . log: --show-signature
   These two use the new multi-line header format, but otherwise
   unchanged.
 . test "commit -S" and "log --show-signature"
 . pretty: %G[?GS] placeholders
   Unchanged.
 Makefile                                           |    2 +
 builtin.h                                          |    8 +-
 builtin/commit-tree.c                              |   24 ++-
 builtin/commit.c                                   |   28 ++-
 builtin/fetch.c                                    |    3 +-
 builtin/fmt-merge-msg.c                            |  113 +++++++--
 builtin/merge.c                                    |  109 +++++----
 builtin/tag.c                                      |   76 +------
 builtin/verify-tag.c                               |   35 +---
 cache.h                                            |    2 +-
 commit.c                                           |  260 +++++++++++++++++++-
 commit.h                                           |   39 +++-
 gpg-interface.c                                    |  138 +++++++++++
 gpg-interface.h                                    |   10 +
 log-tree.c                                         |   39 +++
 merge-recursive.c                                  |   13 +-
 notes-cache.c                                      |    2 +-
 notes-merge.c                                      |    2 +-
 pretty.c                                           |   86 +++++++
 refs.c                                             |    7 -
 revision.c                                         |    2 +
 revision.h                                         |    1 +
 strbuf.c                                           |   14 +
 strbuf.h                                           |    8 +
 t/t4202-log.sh                                     |    4 +-
 t/t5510-fetch.sh                                   |    5 +-
 t/t5515/fetch.br-branches-default                  |    6 +-
 t/t5515/fetch.br-branches-default-merge            |    6 +-
 ...etch.br-branches-default-merge_branches-default |    6 +-
 t/t5515/fetch.br-branches-default-octopus          |    6 +-
 ...ch.br-branches-default-octopus_branches-default |    6 +-
 t/t5515/fetch.br-branches-default_branches-default |    6 +-
 t/t5515/fetch.br-branches-one                      |    6 +-
 t/t5515/fetch.br-branches-one-merge                |    6 +-
 t/t5515/fetch.br-branches-one-merge_branches-one   |    6 +-
 t/t5515/fetch.br-branches-one-octopus              |    6 +-
 t/t5515/fetch.br-branches-one-octopus_branches-one |    6 +-
 t/t5515/fetch.br-branches-one_branches-one         |    6 +-
 t/t5515/fetch.br-config-explicit                   |    6 +-
 t/t5515/fetch.br-config-explicit-merge             |    6 +-
 .../fetch.br-config-explicit-merge_config-explicit |    6 +-
 t/t5515/fetch.br-config-explicit-octopus           |    6 +-
 ...etch.br-config-explicit-octopus_config-explicit |    6 +-
 t/t5515/fetch.br-config-explicit_config-explicit   |    6 +-
 t/t5515/fetch.br-config-glob                       |    6 +-
 t/t5515/fetch.br-config-glob-merge                 |    6 +-
 t/t5515/fetch.br-config-glob-merge_config-glob     |    6 +-
 t/t5515/fetch.br-config-glob-octopus               |    6 +-
 t/t5515/fetch.br-config-glob-octopus_config-glob   |    6 +-
 t/t5515/fetch.br-config-glob_config-glob           |    6 +-
 t/t5515/fetch.br-remote-explicit                   |    6 +-
 t/t5515/fetch.br-remote-explicit-merge             |    6 +-
 .../fetch.br-remote-explicit-merge_remote-explicit |    6 +-
 t/t5515/fetch.br-remote-explicit-octopus           |    6 +-
 ...etch.br-remote-explicit-octopus_remote-explicit |    6 +-
 t/t5515/fetch.br-remote-explicit_remote-explicit   |    6 +-
 t/t5515/fetch.br-remote-glob                       |    6 +-
 t/t5515/fetch.br-remote-glob-merge                 |    6 +-
 t/t5515/fetch.br-remote-glob-merge_remote-glob     |    6 +-
 t/t5515/fetch.br-remote-glob-octopus               |    6 +-
 t/t5515/fetch.br-remote-glob-octopus_remote-glob   |    6 +-
 t/t5515/fetch.br-remote-glob_remote-glob           |    6 +-
 t/t5515/fetch.br-unconfig                          |    6 +-
 t/t5515/fetch.br-unconfig_--tags_.._.git           |    6 +-
 ...nfig_.._.git_one_tag_tag-one_tag_tag-three-file |    6 +-
 ...fig_.._.git_tag_tag-one-tree_tag_tag-three-file |    6 +-
 ...h.br-unconfig_.._.git_tag_tag-one_tag_tag-three |    6 +-
 t/t5515/fetch.br-unconfig_branches-default         |    6 +-
 t/t5515/fetch.br-unconfig_branches-one             |    6 +-
 t/t5515/fetch.br-unconfig_config-explicit          |    6 +-
 t/t5515/fetch.br-unconfig_config-glob              |    6 +-
 t/t5515/fetch.br-unconfig_remote-explicit          |    6 +-
 t/t5515/fetch.br-unconfig_remote-glob              |    6 +-
 t/t5515/fetch.master                               |    6 +-
 t/t5515/fetch.master_--tags_.._.git                |    6 +-
 ...ster_.._.git_one_tag_tag-one_tag_tag-three-file |    6 +-
 ...ter_.._.git_tag_tag-one-tree_tag_tag-three-file |    6 +-
 .../fetch.master_.._.git_tag_tag-one_tag_tag-three |    6 +-
 t/t5515/fetch.master_branches-default              |    6 +-
 t/t5515/fetch.master_branches-one                  |    6 +-
 t/t5515/fetch.master_config-explicit               |    6 +-
 t/t5515/fetch.master_config-glob                   |    6 +-
 t/t5515/fetch.master_remote-explicit               |    6 +-
 t/t5515/fetch.master_remote-glob                   |    6 +-
 t/t7510-signed-commit.sh                           |   71 ++++++
 t/t7600-merge.sh                                   |   12 +-
 t/t7604-merge-custom-message.sh                    |    2 +-
 t/t7608-merge-messages.sh                          |    4 +-
 tag.c                                              |    5 +
 89 files changed, 1080 insertions(+), 392 deletions(-)
 create mode 100644 gpg-interface.c
 create mode 100644 gpg-interface.h
 create mode 100755 t/t7510-signed-commit.sh
-- 
1.7.8.rc1.82.g90e080
Next: Junio C Hamano
Message 1 of 21 in “Pulling signed tags”
  1. 00/17 Pulling signed tagsJunio C Hamano, Nov 9, 2011
  2. 01/17 Split GPG interface into its own helper libraryJunio C Hamano, Nov 9, 2011
  3. 02/17 fetch: do not store peeled tag object names in FETCH_HEADJunio C Hamano, Nov 9, 2011
  4. 03/17 merge: notice local merging of tags and keep it unwrappedJunio C Hamano, Nov 9, 2011
  5. 04/17 fetch: allow "git fetch $there v1.0" to fetch a tagJunio C Hamano, Nov 9, 2011
  6. 05/17 refs DWIMmery: use the same rule for both "git fetch" and othersJunio C Hamano, Nov 9, 2011
  7. 06/17 fmt-merge-msg: avoid early returnsJunio C Hamano, Nov 9, 2011
  8. 07/17 fmt-merge-msg: package options into a structureJunio C Hamano, Nov 9, 2011
  9. 08/17 fmt-merge-msg: Add contents of merged tag in the merge messageJunio C Hamano, Nov 9, 2011
  10. 09/17 merge: make usage of commit->util more extensibleJunio C Hamano, Nov 9, 2011
  11. 10/17 merge: record tag objects without peeling in MERGE_HEADJunio C Hamano, Nov 9, 2011
  12. 11/17 commit: copy merged signed tags to headers of merge commitJunio C Hamano, Nov 9, 2011
  13. 12/17 merge: force edit mode when merging a tag objectJunio C Hamano, Nov 9, 2011
  14. 13/17 commit: teach --amend to carry forward extra headersJunio C Hamano, Nov 9, 2011
  15. 14/17 commit: teach --gpg-sign optionJunio C Hamano, Nov 9, 2011
  16. 15/17 log: --show-signatureJunio C Hamano, Nov 9, 2011
  17. 16/17 test "commit -S" and "log --show-signature"Junio C Hamano, Nov 9, 2011
  18. 17/17 pretty: %G[?GS] placeholdersJunio C Hamano, Nov 9, 2011
  19. Robin H. JohnsonNov 9, 2011
  20. 18/17 request-pull: use the annotated tag contentsJunio C Hamano, Nov 9, 2011
  21. Junio C HamanoNov 9, 2011

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.