使用共享项目创建发布分支周期

时间:2012-05-21 15:21:52

标签: svn branch projects

我们是一个小型/中型团队,以前使用过相当简单的分支系统,它利用SVN的红皮书推荐做法 - 当前开发的不稳定主干,分支关闭,工作时间超过一天等。

我最近实施了一项改变,我很遗憾地认为这是错误的,但我很难理解如何正确地做到这一点。

这个项目现在将用于多个团队的来源 - 现在我知道有一种思想认为二进制文件应该暴露而不是源代码,但这不是一个选项 - 这将通过每个团队都需要对源进行积极的更改。

为了实现这一点,我提出了以下建议:

  • Trunk不会用于积极开发
  • 每个团队都有自己的“主要开发”分支 - 这实际上是以前的主干。
  • 对于较小的项目工作项目,每个团队都从其“主要开发”分支机构中分支。

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

EG,下面是分支的布局(不是物理布局) - 所以每个团队为他们的团队开发分支采用分支机构,并为每个成员工作分支机构分支:

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

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

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

帮帮我OB1。

1 个答案:

答案 0 :(得分:1)

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

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

适用于上述情况。