我们是一个中小型团队,之前使用了一个相当简单的分支系统,该系统利用了 SVN 的红皮书推荐的做法——当前开发的主干不稳定,工作时间长于一天等的分支。
我最近实施了一项更改,不幸的是我意识到这是错误的,但我很难正确地做到这一点。
该项目现在将用于多个团队的源代码 - 现在我知道有一种观点认为应该公开二进制文件而不是源代码,但这不是一个选项 - 这将通过 externs 包含在内,因为每个团队将需要对源进行积极的更改。
为此,我提出以下建议:
- 主干不会用于积极开发
- 每个团队都有自己的“主要开发”分支——这实际上是以前的主干。
- 对于较小的项目工作项,每个团队都会从他们的“主要开发”分支中取出一个分支。
因此,当一个开发周期完成时,每个团队都会将他们的“主开发”分支重新集成到主干中,从而其他团队可以在他们需要时合并(给予他们稳定性),然后为他们创建一个新的“主开发”分支。下一个周期。
EG,下面是分支的布局(不是物理布局) - 所以每个团队为他们的团队开发分支从主干中取出一个分支,并为每个成员工作分支从主干中取出一个分支:
--Trunk
\ TeamAMainDev1
\ PRJ1-teama
\ TeamBMainDev1
\ PRJ1-teamb
问题是,一些分支需要比它们的父 MainDev 分支停留更长时间。一旦他们的父级被集成到 Trunk 中,并创建了一个新的 MainDev,合并显然不起作用。因此,如果有一个新的 TeamAMainDev2 分支,尝试将其合并到 PRJ1-teama 会导致树冲突等 - 这显然是有道理的;我原以为 SVN 会知道 MainDev1 上的更改在 PRJ1 中,但由于它需要合并 MainDev1 的整个重新集成,所以这不起作用。
其他人如何处理这个问题?要使多个分支脱离分支,需要不断地从其父级合并以保持最新,但可能会重新集成到另一个父级。或者其他人会推荐什么流程?
帮我OB1。