Version control 如何在大型团队项目中组织mercurial存储库/子存储库
在工作中,我们需要重新组织版本控制系统 本项目的结构如下: 两个团队:Team1和Team2 a) 第1组和第2组都在模块a上工作 b) Team1也适用于依赖于A的b和C c) Team2也适用于D,D取决于A,但不适用于B和c 我们不希望团队2在其本地机器上实际拥有B和C(属于团队1),同时我们也不希望团队1拥有D 目标是及时获得项目的完整快照,即我们希望随时跟踪并回滚到整个项目的给定版本 我们曾想过使用Mercurial subrepos,但一个团队似乎不可能(也许)忽略另一个团队的subrepos。每个人都必须收回每一笔次级回购。这是正确的吗 如果是这样,我们如何克服这一点?我们真的需要有三个完全独立的存储库,并手动跟踪代码A与B+C以及D的兼容版本吗Version control 如何在大型团队项目中组织mercurial存储库/子存储库,version-control,mercurial,tortoisehg,mercurial-subrepos,Version Control,Mercurial,Tortoisehg,Mercurial Subrepos,在工作中,我们需要重新组织版本控制系统 本项目的结构如下: 两个团队:Team1和Team2 a) 第1组和第2组都在模块a上工作 b) Team1也适用于依赖于A的b和C c) Team2也适用于D,D取决于A,但不适用于B和c 我们不希望团队2在其本地机器上实际拥有B和C(属于团队1),同时我们也不希望团队1拥有D 目标是及时获得项目的完整快照,即我们希望随时跟踪并回滚到整个项目的给定版本 我们曾想过使用Mercurial subrepos,但一个团队似乎不可能(也许)忽略另一个团队的sub
我们担心,随着时间的推移,此类手动跟踪可能会出现错误。您可以使用子回购并按以下方式组织:
- 第1组将主回购X与子回购A、B和C一起使用
- 第2组使用主回购Y和子回购A和D
- 团队1使用主回购B和子回购A
- 团队1使用主回购C和子回购A
- 第2组使用主回购D和子回购A
如果A发生变化,团队可以选择是否以及何时将A子回购更新为新的变化,并将其提交给其主回购。您可以使用子回购并按以下方式组织:
- 第1组将主回购X与子回购A、B和C一起使用
- 第2组使用主回购Y和子回购A和D
- 团队1使用主回购B和子回购A
- 团队1使用主回购C和子回购A
- 第2组使用主回购D和子回购A
如果A更改,团队可以选择是否以及何时将A子回购更新为新更改,并将其提交给其主回购。一个团队很容易忽略另一个团队的子回购。他们只需要在父repo中使用不同的分支,其中.hgsub文件只包含该分支所需的子repo 我建议不要有多个主回购协议,而是只有一个主回购协议,其中包括以下三个分支:
- 分支机构“Team1”在其.hgsub文件中只有子回购A、B和C
- 分支机构“Team2”在其.hgsub文件中只有子回购A和D
- 分支“全部”(或默认)在其.hgsub文件中有A、B、C和D
当团队1从分支团队1签出时,他们得到A、B和C。团队2从分支团队2签出时,他们只得到A和D。整个项目的经理使用分支“全部”(或默认),并将所有回购A、B、C和D更新为适当的版本,然后提交,将所有回购版本绑定在一起,并获得所需的完整快照。一个团队很容易忽略另一个团队的子回购。他们只需要在父repo中使用不同的分支,其中.hgsub文件只包含该分支所需的子repo 我建议不要有多个主回购协议,而是只有一个主回购协议,其中包括以下三个分支:
- 分支机构“Team1”在其.hgsub文件中只有子回购A、B和C
- 分支机构“Team2”在其.hgsub文件中只有子回购A和D
- 分支“全部”(或默认)在其.hgsub文件中有A、B、C和D
当团队1从分支团队1签出时,他们得到A、B和C。团队2从分支团队2签出时,他们只得到A和D。整个项目的经理使用分支“全部”(或默认),并将所有回购A、B、C和D更新为适当的版本,然后提交,将所有回购版本绑定在一起,并获得您想要的完整快照。简单而优雅,但我自己无法理解,谢谢!简单而优雅,但我自己却无法理解,谢谢!