1

我们的客户希望拥有我们正在开发的源代码。作为其中的一部分,他们选择了 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

4

2 回答 2

0

如果 QA 只是针对它记录错误,从不实际接触代码并将修复提交到分支,我不会创建QA分支。DEV为什么不授予 QA 对分支的只读访问权限?这样,您就会知道您只需要将DEV分支合并回trunk.

如果 QA确实需要他们自己的分支 off DEV,因为他们将提交修复,那么合并路径应该是:QA-> DEV-> trunk

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

希望这可以帮助。

于 2013-04-02T14:42:46.597 回答
0

用作trunk开发结帐。中的代码trunk应该是主副本,其中执行错误修复和“安全”开发。

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

当 QA 发现一个 bug 时,trunk 上的代码就被修复了。运行 QA 测试时,无需在主干上进行进一步开发。修复错误后,将创建一个新标签,并且必须再次运行 QA 测试。

如果您想在 QA 测试/错误修复周期运行时开发新功能,您应该创建一个新分支,经常从主干合并它,以集成所有错误修复:新功能的发布将包含在合并中从分支到主干并创建新标签。等等。

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

于 2013-04-02T14:58:33.300 回答