你多久合并一次?

时间:2013-07-03 06:59:13

标签: svn version-control merge branch

我是一名学习如何使用源代码控制软件的开发人员。我看过Subversion documentation。我理解合并的概念,但我的问题是:你多久合并一次?

例如,如果你有一个开发人员在主干上工作,两个开发人员在不同的分支上工作,那么他们什么时候开始:

1) Merge the trunk with branch 1
2) Merge the trunk with branch 2
3) Merge branch 1 with the trunk
4) Merge branch 1 with branch 2
5) Merge branch 2 with the trunk
6) Merge branch 2 with branch 1

在此示例中,请假设这三个更改是孤立的。你是否在每天结束时合并? - 假设变化当然是稳定的,或者你是否及时合并到发布日期?

过去(当我没有使用源代码控制时)我已经发布了as和when。我认为最好设置一个发布日期,我和其他开发人员可以为之努力吗?

我已准备好很多关于今天合并和分支的帖子,例如这一个:Good branching and merging tutorials for TortoiseSVN?。我没有找到我的具体问题的答案。

2 个答案:

答案 0 :(得分:3)

可能有不同的分支策略。但我建议不要将它们与日历或时间事件(如每日或每周)联系起来。

对我来说,以下工作:

  1. 当我启动功能/错误修复时,我发现它需要多次提交,我为它创建了一个分支
  2. 实现修复bug的功能
  3. 最后将从trunk(如果有)的所有新更改合并到该分支
  4. 检查所有测试
  5. 将分支重新整合到主干
  6. 如果开发需要很长时间并且主干有变化,那么在开发过程中多次合并trunk->分支是不合理的。

    有时这样的分支会活1-2个小时。有时1-2个月(但我不喜欢这样的东西 - 通常意味着分解不足)。

    此外,我从未遇到过需要在分支之间进行合并(不包括主干),但这又取决于任务的良好分解。如果一个功能/ bug修复完成,它应该转到trunk,如果不是你不应该使用它的中间状态。

答案 1 :(得分:0)

除了maxim1000的答案(+1之后),我的经历:

我更喜欢在大型单一合并上进行更多小型合并,因为您经常要解决冲突。缺点是在进行大量小型合并时,总投入时间可能会更长。

当我进行合并时,取决于在分支中完成的更改的数量和质量