使用git进行包含许多repos的项目

时间:2011-11-22 08:31:24

标签: git github plone

Plone项目包含192个不同的回购:https://github.com/plone/

在开发过程中,有时需要触摸2或4或10个不同的回购来修复错误或实现功能。如果所有这些都可以分支并合并在一起(例如,拉动请求关闭 issueX 包含提交到 repo1 repo2 和< EM> repo3 )。

版本要求将整套回购品分支并标记在一起。

Pre-git,一个版本是由一个文件定义的,该文件列出了构成版本的所有模块的svn版本号。 git是否为我们提供了更简化的工作方式?

乍一看,似乎“超级项目”可能适用:

  

你可以更具体地定义之间的关系   超级项目中带有标签和分支的项目

http://progit.org/book/ch6-6.html#superprojects“Git / Submodules和Superprojects”似乎证实了这一点,但仍然含糊不清(不涉及标签或分支)。 http://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects

另一个听起来相关的工具是Joey Hess的mr

  

mr(1)命令可以对集合进行签出,更新或执行其他操作   存储库就好像它们是一个组合的存储库。

http://kitenet.net/~joey/code/mr/(我担心这会导致192个不同的分支碰巧具有相同的名称,而不是将所有回购链接在一起的1个分支。)

这个问题看似相关:Is anyone really using git super/subprojects?一个答案说明:

  

我们的项目(bitweaver,一个内容管理系统)是一个高度模块化的   系统,有近160个存储库 - http:// github.com/bitweaver/“。

这听起来像我们的情况。它引用了子模块的“严重限制”,并建议使用mercurial。听起来mr可以帮助处理那些(“对超级仓库中的所有目录执行git命令”)。

2 个答案:

答案 0 :(得分:0)

为什么不看看android使用的the repo tool

答案 1 :(得分:0)

我会在“all”仓库中使用git子模块。另外,如果你找到跨越许多回购的工作,请考虑“git slave”。这可以节省很多精力。