1

我们是一个中小型团队,之前使用了一个相当简单的分支系统,该系统利用了 SVN 的红皮书推荐的做法——当前开发的主干不稳定,工作时间长于一天等的分支。

我最近实施了一项更改,不幸的是我意识到这是错误的,但我很难正确地做到这一点。

该项目现在将用于多个团队的源代码 - 现在我知道有一种观点认为应该公开二进制文件而不是源代码,但这不是一个选项 - 这将通过 externs 包含在内,因为每个团队将需要对源进行积极的更改。

为此,我提出以下建议:

  • 主干不会用于积极开发
  • 每个团队都有自己的“主要开发”分支——这实际上是以前的主干。
  • 对于较小的项目工作项,每个团队都会从他们的“主要开发”分支中取出一个分支。

因此,当一个开发周期完成时,每个团队都会将他们的“主开发”分支重新集成到主干中,从而其他团队可以在他们需要时合并(给予他们稳定性),然后为他们创建一个新的“主开发”分支。下一个周期。

EG,下面是分支的布局(不是物理布局) - 所以每个团队为他们的团队开发分支从主干中取出一个分支,并为每个成员工作分支从主干中取出一个分支:

--Trunk
    \  TeamAMainDev1
           \ PRJ1-teama
    \  TeamBMainDev1
           \ PRJ1-teamb

问题是,一些分支需要比它们的父 MainDev 分支停留更长时间。一旦他们的父级被集成到 Trunk 中,并创建了一个新的 MainDev,合并显然不起作用。因此,如果有一个新的 TeamAMainDev2 分支,尝试将其合并到 PRJ1-teama 会导致树冲突等 - 这显然是有道理的;我原以为 SVN 会知道 MainDev1 上的更改在 PRJ1 中,但由于它需要合并 MainDev1 的整个重新集成,所以这不起作用。

其他人如何处理这个问题?要使多个分支脱离分支,需要不断地从其父级合并以保持最新,但可能会重新集成到另一个父级。或者其他人会推荐什么流程?

帮我OB1。

4

1 回答 1

1

如果其他人需要做类似的事情,这就是我发现的:

在 Tortoise 中,有一个“合并两个不同的分支”的选项 - 所以只需选择前一个分支和之前的一个,这将检测到不是来自两者的任何更改,并添加差异。

这适用于上述情况。

于 2012-06-26T10:37:07.403 回答