Plone项目包含192个不同的回购:https://github.com/plone/
在开发过程中,有时需要触摸2或4或10个不同的回购来修复错误或实现功能.这将是巨大的,如果这一切都可以一起分支和合并在一起(如拉要求关闭issueX含有承诺repo1,repo2和repo3).
版本要求将整个回购集合分支并标记在一起.
Pre-git,一个版本是由一个文件定义的,该文件列出了构成该版本的所有模块的svn版本号.git是否为我们提供了更简化的工作方式?
乍一看,似乎"超级项目"可能适用:
您可以更具体地定义项目与超级项目中的标记和分支之间的关系
http://progit.org/book/ch6-6.html#superprojects"Git /Submodules and Superprojects"似乎证实了这一点,但仍然含糊不清(不解决标签或分支).http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects
另一个听起来相关的工具是Joey Hess mr:
mr(1)命令可以在一组存储库上检出,更新或执行其他操作,就好像它们是一个组合存储库一样.
http://kitenet.net/~joey/code/mr/(我担心这会导致192个不同的分支碰巧具有相同的名称,而不是将所有回购链接在一起的1个分支.)
这个问题看起来很相关:有人真的使用git super/subprojects吗?一个答案说明:
我们的项目(bitweaver,一个内容管理系统)是一个高度模块化的系统,有近160个存储库 - http:// github.com/bitweaver/".
这听起来像我们的情况.它引用了子模块的"严重限制",并建议使用mercurial.这听起来mr可以帮助处理那些("对超级仓库中的所有目录执行git命令").
我会在“所有”存储库中使用 git 子模块。另外,如果您发现工作涉及多个存储库,请考虑“git Slave”。这样可以省很多力气。