我们的客户希望拥有我们正在开发的源代码。作为其中的一部分,他们选择了SVN。他们希望我们在最后开发代码。
他们提出了以下结构。字母代表分支。 一旦DEV分支完成代码累积,他们想要一个名为QA的新分支来拥有该代码,以便QA团队可以开始对其进行测试。如果他们发现任何错误,DEV团队会更新DEV分支中的代码,QA会再次将他们的代码与DEV同步。
最后,代码将被发布到生产环境中,如果有任何错误,DEV-QA-Prod循环将再次出现。
A->B [DEV]----------
|\ | |
| C [ QA ] |
| |
|_______D[ PRODUCTION ]
我们对SVN来说比较新。所以,我们在这方面有几个问题。
1.一旦QA好转,B和C都或多或少都有相同的代码库。鉴于此,哪个分支应该集成回A?。它是B还是C或它根本不重要,因为它们都有相同的东西。
2.如果它确实是C,我们可以直接将另一个分支[B]的分支[C]重新集成到父[A]中吗?
谢谢,
帕。enter code here
答案 0 :(得分:0)
如果QA只是针对它记录错误,我就不会创建QA
分支,从不实际接触代码并向分支提交修复。为什么不给DEV
分支的QA只读访问权限?这样,您就知道您只需要将DEV
分支合并回trunk
。
如果QA 确实需要自己的分支DEV
,因为他们将提交修复,那么合并路径应为:QA
- > DEV
- > trunk
。
我不确定您为何在QA后PROD
分支trunk
分支。为什么不简单tag trunk
使用描述版本的版本号或名称?然后,假设在原始DEV
分支上继续开发,并且如果在生产中发现错误,您可以在下一版DEV
中推送修复(合并回trunk
{post-QA},或在已标记的修订版本上创建一个单独的DEV
分支trunk
分支并在那里应用修复。
希望这有帮助。
答案 1 :(得分:0)
使用trunk
作为开发结帐。 trunk
中的代码应该是主副本,其中执行了错误修正和“安全”开发。
一旦您希望QA完成工作,请创建一个新标签,为其提供版本/内部版本号。
当质量检查发现错误时,主干上的代码是固定的。在QA测试运行时,不得对主干进行进一步的开发。 修复错误后,将创建一个新标记,并且必须再次运行QA测试。
如果你想在QA测试/错误修复周期运行时开发新功能,你应该创建一个新的分支,经常从主干合并它,以集成所有的错误修正:新功能的发布将包括在从分支到主干的合并以及新标签的创建中。等等。
QA可以使用svn switch
命令从标签跳转到另一个:我想他们不会编写代码;标记在创建后不会被修改。