Plone项目由192个不同的仓库组成:https://github.com/plone/
在开发过程中,有时需要修改2个、4个或10个不同的仓库来修复错误或实现功能。如果所有这些仓库可以一起分支并合并(例如,包含对repo1,repo2和repo3进行提交的关闭issueX的拉取请求),那将是很好的。
发布需要将整套仓库一起分支和标记。
在git之前,发布是通过列出构成发布的所有模块的svn修订号的文件来定义的。Git是否为我们提供了更简化的工作方式?
乍一看,似乎“超级项目”可能适用:
您可以使用超级项目中的标签和分支更具体地定义项目之间的关系
http://progit.org/book/ch6-6.html#superprojects “Git /子模块和超级项目”似乎证实了这一点,但仍然模糊不清(没有涉及标签或分支)。 http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects
另一个听起来相关的工具是Joey Hess的mr
:
mr(1)命令可以检出、更新或执行其他操作,就像它们是一个组合的存储库。
http://kitenet.net/~joey/code/mr/ (我担心这将导致192个不同的分支具有相同的名称,而不是连接所有仓库的1个分支。)
这个问题似乎相关:有人真正使用git超级/子项目吗?一个答案指出:
我们的项目(bitweaver,内容管理系统)是一个高度模块化的系统,几乎有160个代码库- http://github.com/bitweaver/。这听起来很像我们的情况。它引用了子模块的“严重限制”,并推荐使用mercurial。看起来像
mr
可以帮助处理这些问题(“对超级仓库中的所有目录执行git命令”)。