我们正在考虑从SVN转换到Mercurial,但遇到了一个难题。
我们目前使用svn:externals
将一组常用库自动拉入工作目录。我发现Mercurial中并没有类似的支持。
是否有自动在Mercurial中执行此操作的方法,或者我需要将其伪造成我的构建过程的一部分?
我们正在考虑从SVN转换到Mercurial,但遇到了一个难题。
我们目前使用svn:externals
将一组常用库自动拉入工作目录。我发现Mercurial中并没有类似的支持。
是否有自动在Mercurial中执行此操作的方法,或者我需要将其伪造成我的构建过程的一部分?
看起来,Forest扩展功能正在被集成到核心Mercurial中(截至1.3版):
https://www.mercurial-scm.org/wiki/Subrepository。
目前标记为“实验性”,但也许会成为处理svn:external类型功能的途径,即从v1.4开始。
使用Mercurial本身没有很好的方法来解决这个问题。 其他地方提到的Forest Extension现在带来的问题比修复的问题还要多。 大多数人只是使用一个大型repo,并将所有组件都包含在repo中,然后让他们的构建脚本下载和使用第三方库-如果他们是Java-heads,则使用maven。
简短的回答是“在您的构建过程中伪造它”。
更新:
在Mercurial 1.3中添加了新的子存储库功能。 它类似于旧的forest extension,但始终使用全新的代码。
Subrepos 被认为是“最后的手段特性”。
试试Mercurial的Forest扩展。