Can I emulate svn:externals using mercurial?

2019-01-21 10:37发布

问题:

We are considering a move from SVN to Mercurial, and have encountered a stumbling block.

We currently use svn:externals to automatically pull a common set of libraries into the working directory. I can't find support for anything like this in Mercurial.

Is there a way to do this automatically with Mercurial, or do I need to fake it as part of my build process?

回答1:

There's no good way to do it using mercurial only. The Forest Extension mentioned elsewhere causes more problems that in fixes nowadays. Most folks just use a large repo and include all their components in the repo and then have their build scripts download and use 3rd party libraries -- using maven if they're Java-heads.

Short answer "fake it in your build process".

Update:

In Mercurial 1.3 a new sub repos feature was added. it's like the old forest extension, but started as all new code.

Subrepos are considered a "feature of last resort".



回答2:

It appears that the functionality of the Forest Extension is being implemented into core Mercurial (as of 1.3):

https://www.mercurial-scm.org/wiki/Subrepository.

Currently marked as "experimental" but perhaps will be the route to handle svn:external -type functionality as of v1.4.



回答3:

Have you tried Deps Extension ?

It's not part of Mercurial, but seems to mimic svn:externals feature



回答4:

Try Mercurial's Forest Extension.