Tags for promoted builds

Kelly O'Hair Kelly.Ohair at Sun.COM
Thu Nov 15 17:21:23 UTC 2007

The Mercurial tags thesmelves are very cheap, essentially they provide you a way to
name a changeset and optionally provide some arbitrary text to the tag.

Global tags are just entries in the repository .hgtags file, and every new
tag is potentially a new changset because this managed file gets modified.
Local tags stay with your repository and people can do whatever they want with
local tags.

The interesting thing about global tags is that you can add tags to old changsets
at anytime, and in general you can edit the set of tags by just editing .hgtags.
So tags aren't as permanent as a changeset number, they are just edits to a file.
They are extremely handy, but I'm not exactly sure I'd use a tag name where
I could use a changeset id if I wanted a permanent reference to a change in a repository.

(Also, each repository needs a tag, there is no 'forest' tag command yet).

Our current thinking is that we should reserve global tags to major product events,
like promotions. Adding tags for day to day or team specific events might just
work out fine, but think about the clutter and potential conflicts in the
.hgtags file. Think about after a year when you run 'hg tags' and get a list of
100 promotion tags, or 5,000 various tags from teams for nightlies, PIT's, SWATs,
JPRT jobs, etc. Could get very cluttered.

I'm thinking that the Java Release Engineering team (RE) should kind of 'own' the
.hgtags files. But that's just my gut feeling...


Yuri Nesterenko wrote:
> By the way, how about tagging, say, moment of a certain PIT build?
> Returning to this point may be necessary in situations with performance
> bugs (for instance). 
> Thanks,
> -Yuri
> On Tue, Nov 13, 2007 at 09:51:28AM -0800, Xiomara.Jayasena at Sun.COM wrote:
>> What you see below was just for practice.  I had some discussions around 
>> this in RE and with Kelly and the conclusion was that it would be 
>> jdk7-bNN as you are suggesting.  I will also tag specific milestones as 
>> mentioned below.
>> Thanks,
>> -Xiomara
>> Mark Reinhold wrote:
>>>> Date: Sat, 10 Nov 2007 04:27:39 +0000
>>>> From: xiomara.jayasena at sun.com
>>>> Changeset: 2e4d6d562de7
>>>> Author:    xdono
>>>> Date:      2007-11-09 20:03 -0800
>>>> URL:       http://hg.openjdk.java.net/jdk7/tl/rev/2e4d6d562de7
>>>> Added tag jdk7-ea-b99 for changeset 8792e7dbf130
>>> The problem with this tag format, which is based on our ancient
>>> bundle-naming scheme, is that the middle token changes over time,
>> >from "ea" to "beta" to (maybe) "beta2" to "rc" to "fcs".  This
>>> makes it unnecessarily difficult to look up a changeset for a
>>> specific build -- you also need to know in which phase of the
>>> release cycle it was promoted.
>>> I think it'd make more sense to use simple "jdk7-bNN" tags, and
>>> then also tag specific milestones as "jdk7-beta", "jdk7-rc1",
>>> "jdk7-fcs", etc.
>>> - Mark

More information about the build-dev mailing list