Improving support for signed revisions

Martin Geisler mg at lazybytes.net
Wed May 6 17:28:57 CDT 2009


Lasse Kliemann <lasse-list-mercurial-2009 at mail.plastictree.net> writes:

> Greetings,
>
> is the GPG extension used by many? In which way are people using it?

I'm using it for my projects, Mercurial is using it and searching for
.hgsigs will find you other projects that use it.

The extension is not about ensuring that author name in a changeset
reflects whoever wrote the changeset. In Mercurial we sometimes update a
patch received by email slightly before pushing it to the public
repositories. The original submitter will still be credited with the
changeset, even though we edited it too.

The gpg extension has another purpose: it lets you put a "stamp of
approval" on certain changesets by digitally signing them.

The signature is made on the revision hash, and people can then later
verify these signatures. Having verified the signature, they can then
update to the signed revision and trust the integrity of their clone.


It is very important to note that the signature means exactly what I
wrote above -- there is no other meaning attached to it unless the
signer says so.

People will, of course, generally sign changesets in order to indicate
that they are trustworthy. It is common practice to sign the tagged
changesets before making a release in order to tell the world that the
signer trusts the code up to this point.

Extending the gpg extension to sign every commit in a more light-weight
fashion would definitely be cool, but it hasn't been done yet.

-- 
Martin Geisler

VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multiparty Computation) to Python. See: http://viff.dk/.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial/attachments/20090507/88c0a431/attachment.pgp 


More information about the Mercurial mailing list