git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Shawn Pearce <spearce@spearce.org>, git@vger.kernel.org
Subject: Re: [PATCH] commit: teach --gpg-sign option
Date: Thu, 06 Oct 2011 14:29:00 -0700	[thread overview]
Message-ID: <7v8voxzu5f.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20111006171107.GA10973@elie> (Jonathan Nieder's message of "Thu, 6 Oct 2011 12:11:07 -0500")

Jonathan Nieder <jrnieder@gmail.com> writes:

>> I like this approach better than the prior "push certificate" idea.
>> The signature information is part of the history graph
>
> I probably missed some earlier discussion (so please forgive me this),

Heh, you are not forgiven when the original message has a clear pointer to
the previous discussion ;-).

> but how is it intended to be used?  Would projects
>
>  a. require as a matter of policy that all commits be signed

Possible. Personally I would _not_ advise it but they can send in a patch
to add a configuration or two if they do want to run their project that
way.

>  b. just sign releases as usual, but as commits in the history graph
>     instead of tags

This is not meant to replace tags that is attached after the fact. If
anything...

>  c. sign the occasional especially interesting commit

...with the definition of "interesting" being "this is tonight's tip of
branch Linus is pushing out between releases", "I shortly will ask Linus
to pull from the history leading up to this commit", etc., this is the
primary scenario I personally envision the feature would be used in.
Without having to have "nightly" signed tags that clutter the tag
namespace, we can gain more confidence in the integrity of the history
between officially tagged release points that may be a few months apart,
depending on projects.

> ... How
> does this relate to the "push certificate" use case, which seemed to
> be mostly about authenticating published branch tips with signatures
> that are not necessarily important in the long term?

To the upstream project whose participants are signing its history, these
publish points may not be important in the longer term, but for downstream
consumers that have to fork from an in-between point for the next embedded
device release track, it serves the same purpose as push certificates and
is equally important: it allows them to limit the length of near-tip
history that might have been tampered that needs to be validated. If the
downstream consumers fork only from a signed commit point, they only need
to audit their own history without worrying about imported stuff after
incident like what k.org had recently.

I am also somewhat disturbed by "have to sign when committing, long before
I am confident that this is worth pushing" aspect of this approach, but I
do not think it would be much of an issue in practice.

 - If you are only pubishing one independent branch, it is just the matter
   of either "commit --amend --gpg-sign" or "commit --allow-empty --gpg-sign"
   before you push;

 - If you are publishing multiple related branches (e.g. maint, master,
   next) like I do, and want to correct a mistake discovered at a lower
   branch (e.g. master) after it has been already merged in higher
   branches (e.g. next), you have to either amend the tip of the lower
   branch and rebuild the higher branches, or queue a fix-up to the tip of
   the lower branch and merge the result to the higher branches _anyway_,
   before you push.

  parent reply	other threads:[~2011-10-06 21:29 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-06  0:56 [PATCH] commit: teach --gpg-sign option Junio C Hamano
2011-10-06 15:50 ` Shawn Pearce
2011-10-06 17:11   ` Jonathan Nieder
2011-10-06 17:22     ` Matthieu Moy
2011-10-06 18:44       ` Michael J Gruber
2011-10-06 21:29     ` Junio C Hamano [this message]
2011-10-06 22:24 ` Robin H. Johnson
2011-10-07  8:40   ` Michael J Gruber
2011-10-07 11:18     ` Nguyen Thai Ngoc Duy
2011-10-09 16:32     ` Michael J Gruber
2011-10-09 22:57     ` Robin H. Johnson
2011-10-09 23:18       ` Junio C Hamano
2011-10-11  0:38         ` Robin H. Johnson
2011-10-09 20:00 ` Michael J Gruber
2011-10-09 21:22   ` Junio C Hamano
2011-10-10  6:33     ` Michael J Gruber
2011-10-10 16:35       ` Junio C Hamano
2011-10-09 22:27   ` Junio C Hamano
2011-10-10  6:33     ` Michael J Gruber
2011-10-10 16:45       ` Junio C Hamano
2011-10-11  6:39         ` Michael J Gruber
     [not found] ` <CACBZZX6xsnAv4S8zAqi08bcqrghZ8nKdzFP=UNCqZOqrEeLFnA@mail.gmail.com>
2011-10-10  4:58   ` Junio C Hamano
2011-10-19  0:20 ` [PATCH v3 0/3] Signed-commit Junio C Hamano
2011-10-19  0:20   ` [PATCH v3 1/3] Split GPG interface into its own helper library Junio C Hamano
2011-10-19  0:20   ` [PATCH v3 2/3] commit: teach --gpg-sign option Junio C Hamano
2011-10-19  0:20   ` [PATCH v3 3/3] log: --show-signature Junio C Hamano
2011-10-20  0:36   ` [PATCH v4 0/5] Signed-commit Junio C Hamano
2011-10-20  0:36     ` [PATCH v4 1/5] Split GPG interface into its own helper library Junio C Hamano
2011-10-20  0:37     ` [PATCH v4 2/5] commit: teach --gpg-sign option Junio C Hamano
2011-10-20  0:37     ` [PATCH v4 3/5] log: --show-signature Junio C Hamano
2011-10-20  0:37     ` [PATCH v4 4/5] t7004: extract generic "GPG testing" bits Junio C Hamano
2011-10-20  0:37     ` [PATCH v4 5/5] test "commit -S" and "log --show-signature" Junio C Hamano
2011-10-22  5:01     ` [PATCH 7/5] pretty: %G[?GS] placeholders Junio C Hamano
2011-10-22 10:47       ` Elia Pinto
2011-10-22 17:55         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7v8voxzu5f.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).