I don't particularly care for our model of a single Mercurial repository
per logical entity. I think it makes sense for things like twigs and to
some extent integration repositories - you can do your work in your own
little world without disrupting others. But for all the release
branches, I think the model is suboptimal.
I'm proposing that we merge all the release repositories (central,
aurora, beta, release, esr, and b2g) into a single Mercurial repository.
The "default" branch/bookmark of this repository would be the equivalent
of mozilla-central. At train uplift time, we create a new branch (or
bookmark) called gecko-N (or similar) where N is the core gecko/platform
release version. If default/central is on 25, Aurora changes land in
gecko-24, Beta in gecko-23, etc. These could be supplemented with build
and release tags/branches as appropriate.
A benefit of this model is it introduces a linear repository history for
release branches. Contrast this with today, where we do non fast-forward
pushes at uplift time as a new "default" head becomes aurora, beta, etc.
gecko-25 is always "Firefox" 25 as it rides the trains: it doesn't go
through an identity crisis as it crosses channels.
Another benefit is it's a single repository. Wouldn't it be nice to have
the full history of all landings for released code in one unified
location rather than spread out over multiple repositories? I think it
would. I know it would have better performance characteristics than
maintaining multiple repos (reducing round trips, data duplication,
etc). These are all reasons I've switched to a monolithic/unified
repository for local development (just like the Github mirror).
A downside of this approach (other than that it is work to change) is
people may not realize which version aurora, beta, etc are on. However,
that can easily be corrected with tools. e.g. |hg land beta| or even
having friendly channel tags/aliases mirroring the core version numbers.
Anyway, I believe the decisions on repository structure were made many
years ago, apparently due to limitations in now ancient versions of
Mercurial. Times have changed. I think we should revisit old decisions.
Gregory
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform