views:

182

answers:

2

Hi.

Using CVS at the moment...

When creating a new project that references modular components we use aliases to put together a project directory. So, if project1 uses component1 and component2 then we'd use aliases to pull these components into the project1 directory so that

cvs co project1

Would give the developer all they need - with the components in sub-directories.

I understand the equivalent in Subversion is svn:external, but could be wrong.

My question is how does this work with Mercurial? I've heard folks talk about the Forest Extension and various other modules but I'd have expected this sort of functionality to be pretty core (so I'm assuming I've missed something).

There is a related question, but I don't think this is a duplicate.

Thanks for your help.

+1  A: 

There is a DepsExtension for Mercurial that can be used for similar purposes as svn:external.

avakar
Hi. I'd seen this, but was a little worried that it wasn't part of the core Mercurial offering. It feels like pretty much core functionality of any development project so assumed.
Nick Pierpoint
I failed to parse your second sentence, sorry. Note however that a lot of Mercurial functionality is distributed in the form of extensions.
avakar
If an extension isn't distributed with mercurial I wouldn't count on it staying current. For a small project or personal use you might consider it, but I'd not stake my company's build on a 3rd party extension.
Ry4an
+4  A: 

Mercurial had no official way to do this until the 1.3 release. Now it has sub repo support. It's still considered experimental, but it was implemented from whole cloth by Mercurial's creator and he's a sticker for backward compatibility, so you're not likely to be left high and dry.

Ry4an