ForestExtension question + wiki cleanup request

Marcus Lindblom macke at yar.nu
Wed Mar 4 12:22:59 CST 2009


Kelly O'Hair wrote:
> You said
>    'to keep our build system repo in sync  across the "main" repositories'
> Not sure what you mean by that. The forest extension is to help
> manage nested repositories, not sure I see I understand your 'sync' comment.

Sorry. Bad wording. I meant that we have a common lib that gets fixed 
and enhanced as time goes on, (our build system), and I need a good way 
to make sure any changes can be re-used between the platform repos.

Simplified, we have:
  * core
  * web
  * buildsystem

core & web are used separately most of the time, no need to check out 
all three. buildsystem is common stuff used by both. Instead of 
duplicating files and then use transplant or something, I'd just use a 
separate repo for that.

There will probably be a few more repos further on.

> ---
> 
> See http://www.selenic.com/mercurial/wiki/index.cgi/NestedRepositories
> 
> I work on several projects that have forests or nested repositories.
> We use the latest forest extension from
>    http://bitbucket.org/pmezard/hgforest-crew/overview/
> Probably hundreds of users. It works fine, but I'm looking forward
> to the NestedRepositories work.

Sweet.

> The biggest advantage to forest.py is the fclone, and that is often
> the hardest thing to get a Mercurial server to do right.
> You can create a forest with separate clone commands, and get the
> same result.

Ok.

[snip]

> It has been our experience that most developers work in one or two
> repositories, but may need the entire forest to verify changes work.
> So after the fclone, and an occasional fpull -u, the rest of the forest
> commands are more rarely needed or used.

That's what I've figured too.

> To us, forests or nested repositories are essential, but I would
> be careful to go this route too quickly, if a single repository
> is an option, I'd recommend using a single repository.

Copying changes and doing double commits could work (we did that with 
svn at my previous job, as we didn't want to use svn:externals there).

Hm. I probably need to add a MercurialForest step to BuildBot.

Our Trac integration ought to work reasonably well, by using the 
MercurialTimeLine plugin.

Food for thought, but a clearer picture. :)

Cheers,
/Marcus


More information about the Mercurial mailing list