Stephen Lau wrote:
I've been mulling over the problem of how to tag builds in the Mercurial
repository today. The easy solution is to of course just tag the builds
on the day the gate closes - but this doesn't take into account backouts
or respins...
So each build is, essentially a branch of onnv-gate and needs to be
treated as such.
To expand on this based on what I just learned. Respins don't move the
build further along the history, the 'fixing' change is cherry-picked
into the build. This means we can't just tag the new change as bN and
bNa, as there's no guarantee all preceding changes were part of that build.
Mercurial's official position is that "a branch == a repository", but it
is possible to do in-line branches via tagging with multiple heads.
Making use of multiple heads in the same repository tends to confuse
things greatly. I also suspect that you can't pull -u when the incoming
changes introduce multiple heads (I'm not sure if this is the case when
both new heads come from the remote, however).
I'd certainly tag the build closure, but given the above, I can't think
of a way to deal with respun builds (well, ok, ceasing cherry-picking
the fixing change into the build, and taking the history up to that
point, but I'm assuming that's not tolerable).
Is the tagging of respins really such an issue? As I understand the
above, they serve for no other purpose than to put a non-toxic set of
packages into the WOS, I can't (currently) come up with a situation
where I would want that exact source, rather than a similar point along
the gate's history (if I wanted the fixing change, I'd take the gate
after that change...)
-- Rich.
_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org