Subject: Re: [PATCH] git-tag man: when to use lightweight or annotated tags

From: Marc Branchaud <[email-masked]>
Date: Thu, 25 Jul 2013 10:47:43 -0400

On 13-07-25 09:45 AM, Daniele Segato wrote:
> From d0f4eca712e7cf74286bfab306763a8a571b6c95 Mon Sep 17 00:00:00 2001
> From: Daniele Segato <[email-masked]>
> Date: Thu, 25 Jul 2013 15:33:18 +0200
> Subject: [PATCH] git-tag man: when to use lightweight or annotated tags
> 
> stress the difference between the two with suggestion on when the user
> should use one in place of the other.
> 
> Signed-off-by: Daniele Segato <[email-masked]>
> ---
>  Documentation/git-tag.txt |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
> index 22894cb..48f5504 100644
> --- a/Documentation/git-tag.txt
> +++ b/Documentation/git-tag.txt
> @@ -36,6 +36,10 @@ are absent, `-a` is implied.
>  Otherwise just a tag reference for the SHA-1 object name of the commit
> object is
>  created (i.e. a lightweight tag).
> 
> +Annotated and Lightweight tags are not the same thing for git and you shouldn't
> +mix them up. Annotated tags are meant for release while lightweight tags are
> +meant to tag random commits.

Unfortunately the word "annotated" hasn't yet been introduced at this point,
so the overall effect is even more confusing.  Also, I find the "release" vs.
"random" distinction a bit misleading since both types of tag can refer to
any object.  I also liked the direction of your earlier "command only
consider annotated tags by default" phrasing.

After reading the Tagging section of the Git Book[1] I came up with the
following.  Feel free to modify it as you like, or ignore it completely:

Tag objects (created with -a) are called annotated tags.  While a lightweight
tag is simply a name for an object (usually a commit object), an annotated
tag contains the creation date, the tagger's name and e-mail, a tagging
message, and can be signed and verified with GNU Privacy Guard (GnuPG).  Most
git commands only consider annotated tags by default.  In general lightweight
tags are for private or temporary object labels, while annotated tags are
meant to be permanent and/or published.  For example, an annotated tag is
normally used to identify a release point.

		M.

[1] http://git-scm.com/book/en/Git-Basics-Tagging