如何在大型团队项目中组织mercurial仓库/子仓库

问题描述:

在工作中,我们需要重新组织我们的版本控制系统。如何在大型团队项目中组织mercurial仓库/子仓库

项目的结构如下:

2队:TEAM1的Team2

一)两个TEAM1的Team2在模块一个工作。

b)中TEAM1也适用于Ç,这取决于

C)的Team2也适用于d,这取决于一个ç

我们不想的Team2物理对他们的本地机器BC(属于Team1)a nd同时我们不想Team1D

目标是及时完成项目的快照,即我们希望随时跟踪并回滚到整个项目的给定版本。

我们想过使用Mercurial subrepos,但似乎不可能(可能)让一个团队忽略另一个团队的subrepos。每个人都必须提取每个子文件。它是否正确?

如果是这样,我们该如何克服?我们是否真的需要拥有三个完全独立的存储库,并手动跟踪兼容版本的代码AB + C以及单独的D

我们担心这样的手动跟踪随着时间的推移很容易出错。

您可以使用subrepos和组织:

  • TEAM1使用主回购X与subrepos 一个,并Ç
  • 的Team2使用主回购ý与subrepos d

如果B和C是不相关的,你可能想:

  • TEAM1使用主回购与subrepo 一个
  • Team1使用主回购C与subrepo A
  • Team2使用主回购D与subrepo A

如果更改了团队可以选择是否以及何时将A subrepo更新为新更改并将其提交给主仓库。

+0

简单而优雅,但我无法弄清楚自己,谢谢! – xanz

团队很容易忽视其他团队的子报表。他们只需要在父回购中使用不同的分支,而.hgsub文件只包含该分支所需的子报表。

我建议不必多主回购,但只有一个主回购这些三个分支:

  • 分公司“TEAM1”在其.hgsub文件只subrepos A,B和C
  • Branch“Team2”在其.hgsub文件中只有subrepos A和D.
  • Branch“All”(或默认)在其.hgsub文件中具有A,B,C和D.

当团队1从分支team1中检出时,他们得到A,B和C.团队2从分支team2中检出,他们只获得A和D.整个项目的经理使用分支“All “(或默认),并将所有回购A,B,C和D更新为适当的版本,然后提交,将所有回购版本捆绑在一起,并获得所需的完整快照。