我们正在开展一个由4个团队组成的大型项目(网站,服务器,小程序,部署)。有时每个团队的成员必须对其他团队的代码进行微小的更改(例如:applet团队的成员必须在网站中添加字段,或者服务器团队的成员必须更改部署脚本)。
目前,每个团队都有自己的mercurial存储库,我们正在使用版本号来组织团队之间的依赖关系。 (小程序版本3.4需要网站版本1.7 )
我认为我们的善变组织不是最优的,我的想法是拥有一个大的mercurial存储库 MASTER ,它将被克隆在网站, SERVER < / strong>, APPLET 和部署。每个团队的每个成员都可以访问其他团队的代码,并且由于克隆的不同,他们不会受到其他团队提交的影响。
SO社区对此有何看法?
答案 0 :(得分:3)
您应该为单独的组件维护单独的存储库,并为组件之间共享的任何组件(如果您愿意,库)维护其他单独的存储库。然后使用subrepository功能让组件repos包含共享内容。
将所有内容合并为一个大型仓库在svn中运行良好,但在Mercurial或任何DVCS中,您最好使用较小的回购组合。