Cross-repo revision numbers?

Matt Mackall mpm at selenic.com
Mon Oct 12 04:53:33 UTC 2009


On Sun, 2009-10-11 at 23:38 -0400, Mike Meyer wrote:
> I'm evaluating replacing a clients current svn repo with a DSCM. The
> major issue seems to be that our build system needs to be able to
> specify a revision in a way that works across multiple
> repositories. We've had to deal with this on svn as well - the
> repository was large enough that svn had performance issues, so we
> broke that up as well.
> 
> We build 80+ distributions, each composed of a multitude - in some
> cases over 200 - different packages. The packages are shared between
> distributions. Using a DSCM, the logical approach would seem to be to
> put each package in it's own repository. But to create a release, we
> need to have a tag of some kind to label which version of each package
> went into a release so we can recreate it later. We currently do that
> with svn's '{DATE}' revision syntax, and just record the date for the
> release.
> 
> Is there something analogous in hg? Possibly with - or coming to - the
> new subrepo facility?

The subrepo system might be precisely what you want. It basically
records a collection of [repository url, changeset, subdirectory]
tuples. A commit in the top-level project will record all of those
tuples, so a tag can effective tag the state of a group of subrepos.

On the downside, you've effectively got to have the entire distribution
'checked out', which will eventually become unpleasant. So it might be
preferable to roll your own solution here which simply queries all the
package repository states and records them in a file.


-- 
http://selenic.com : development and support for Mercurial and Linux





More information about the Mercurial mailing list