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

Reply via email to