Subject: Re: git "tag" objects implemented - and a re-done commit

From: "H. Peter Anvin" <[email-masked]>
Date: Mon, 25 Apr 2005 14:36:00 -0700

Linus Torvalds wrote:
> 
> Anyway, I decided that my original model for tags was the right one, with 
> a trivial extension. Notably, if you want to tag a single file or a tree 
> object, go wild. The tag object format is:
> 
> 	object <sha1>
> 	type <type>
> 	tag <tag>
> 	.. free-form commentary and signature of this all ..
> 
> and the "git-mktag" program verifies that the three first lines are valid 
> before it accepts it and writes it as a git object.
> 
> Right now the tags don't do anything, except fsck can verify them (not the
> signature - git doesn't even specify any particular format, and you may
> validly have unsigned tags in your tree), and will print out something
> like
> 
> 	tagged commit e83c5163316f89bfbde7d9ab23ca2e25604af290 (v2.6.12-rc2)
> 
> if you were to have such a tag-object in your object database (you don't, 
> because I've not generated one, but hey..)
> 

It would be good if the tag object could permit junk lines before the 
start of the header; in particular, the standard PGP/GPG signed message 
format looks like:

-----BEGIN PGP SIGNED MESSAGE-----

object aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
type commit
tag foo

As an alternative, the signature can be a separate object, since the 
object SHA-1 itself acts as a verifier of its self-content; thus, all 
that is really necessary is an authorized verifier.

	-hpa