2013-04-02 29 views
1

我们的客户希望拥有我们正在开发的源代码。作为其中的一部分,他们选择了SVN。他们希望我们在最后开发代码。SVN设置和重新整合功能

他们提出了以下结构。字母表示分支。 一旦DEV分支完成了代码积累,他们需要一个名为QA的新分支来拥有该代码,以便QA团队可以开始对其进行测试。如果他们发现任何错误,DEV团队会更新DEV分支中的代码,并且QA会再次将他们的代码与DEV同步。

最后,代码发布到生产环境中,如果有任何错误,DEV-QA-Prod循环将再次出现。

A->B [DEV]---------- 
|\ |    | 
| C [ QA ]  | 
|     | 
|_______D[ PRODUCTION ] 

我们对SVN来说比较新。所以,我们在这方面有几个问题。

1.一旦质量保证是好的,B和C的代码基本相同或多或少。鉴于此,哪个分支应该被整合回A ?.是B还是C?或者根本不重要,因为它们都有相同的东西。

2.如果确实是C,我们可以直接将另一个分支[B]的分支[C]重新集成到父母[A]吗?

谢谢, Pavan。 enter code here

+0

这并不能直接回答你的问题,但是当我学习SVN时,这帮助了我很多 - http://weblogs.asp.net/bsimser/archive/2008/05/06/day-to-day-与-subversion.aspx。 – Scott

回答

0

如果QA只是简单地记录对它的错误,那么我不会创建QA分支,从不实际触及代码并将修复提交到分支。为什么不给QA只读访问DEV分支?这样,你就知道你只需要将DEV分支合并回trunk即可。

相反,如果QA 需要自己岔开DEV,因为他们会犯修复,然后合并路径应该是:QA - >DEV - >trunk

我不确定为什么你要创建一个PROD分支trunk post-QA。为什么不简单地用tag trunk来描述发布的版本号或名称?然后,假设开发继续在原始DEV分支上,并且如果在生产中发现错误,则可以在下一个版本DEV(合并回trunk后QA)中修正错误,或创建单独的DEV分支关闭trunk标记的修订版本并在此处应用修复。

希望这会有所帮助。

0

使用trunk作为开发结账。 trunk中的代码应该是主要副本,其中执行bug修复和“安全”开发。

一旦您希望QA完成他们的工作,请创建一个新标签,并为其提供版本/内部版本号。

当QA发现错误时,主干上的代码是固定的。 QA测试正在运行时,在主干上不必进行进一步的开发。 一旦修正了错误,将会创建一个新的标签,并且必须再次运行QA测试。

如果你想开发新的功能QA测试/ bug修正周期运行时,你应该创建一个新的分支,从树干常常合并了,为了所有的错误修正整合:新功能的发布将包括从分支到干线的合并以及新标签的创建。等等。

QA可以使用svn switch命令从标签跳转到另一个标签:我想他们不写代码;标签在创建后不应被修改。