Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何在大型团队项目中组织mercurial存储库/子存储库_Version Control_Mercurial_Tortoisehg_Mercurial Subrepos - Fatal编程技术网

Version control 如何在大型团队项目中组织mercurial存储库/子存储库

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

在工作中,我们需要重新组织版本控制系统

本项目的结构如下:

两个团队:Team1Team2

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的兼容版本吗


我们担心,随着时间的推移,此类手动跟踪可能会出现错误。

您可以使用子回购并按以下方式组织:

  • 第1组将主回购X与子回购ABC一起使用
  • 第2组使用主回购Y和子回购AD
如果B和C不相关,您可能需要:

  • 团队1使用主回购B和子回购A
  • 团队1使用主回购C和子回购A
  • 第2组使用主回购D和子回购A

如果A发生变化,团队可以选择是否以及何时将A子回购更新为新的变化,并将其提交给其主回购。

您可以使用子回购并按以下方式组织:

  • 第1组将主回购X与子回购ABC一起使用
  • 第2组使用主回购Y和子回购AD
如果B和C不相关,您可能需要:

  • 团队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更新为适当的版本,然后提交,将所有回购版本绑定在一起,并获得您想要的完整快照。

简单而优雅,但我自己无法理解,谢谢!简单而优雅,但我自己却无法理解,谢谢!