我们在企业环境中得到了一个SVN仓库结构,看起来像这样:适应的svn:externals的使用情况迁移到水银
root
libs
shared_lib1
shared_lib2
private_lib
public_code
private_code
其中public_code是一个外部存储库是开源的,人们从公司外部有读写访问权限。 shared_lib1和shared_lib2也是与其他公司的另一组程序员共享的外部存储库。我是维护者,基本上可以做任何技术上最好的,外部用户将不得不适应。
我现在想知道的最好的办法就是从这种结构转移到Mercurial库的内容。
1)我可以逼真地模拟使用水银subrepositories的旧体制。 OR
2)我可以让我们一个大的回购和三个新的更小,对于大的和独立的人之间的外部合作伙伴(所以基本上分叉项目),交流变更单独的存储库。
随着SVN设置1),分支是一场噩梦,因为我的策略始终有分支public_code,shared_lib1和shared_lib2当我支根。为此,我必须四次调用svn分支并手动修改svn:externals属性三次。我可以轻松地将主要repo分支到mercurial并自动获取所有子存储库的新分支吗?
当我设置2),文件系统将回购之间的不同。例如。我将在repo“root”中拥有public_code/Makefile,但该文件将在repo“public_code”中成为“Makefile”。 Mercurial仍然能够同步回购之间的变化吗?工作流程怎么样?
感谢这个非常有帮助和详细的答案。 – fschmitt 2011-12-29 22:14:46
+1使用像Maven这样的构建工具来管理依赖关系。 – 2012-01-02 17:40:52