svn - 版本控制如何为紧急修复设置 SVN repo?

  显示原文与译文双语对照的内容

作为多年的开发人员,这是我应该知道但不应该知道的。

我正在一个小型团队上发布一个发布的产品。 我是主开发人员提交大多数代码,但是还有它的他几个开发人员提交时间。 目前,我们有一个运行Hudson的登台服务器,在每次提交之后构建。 当主干稳定和测试时,通过一个简单的svn命令手动更新生产。

除非我们在主干中没有完成代码,但我们确实需要紧急/紧急更改。

如何设置 repo 以适应这种情况? 我以为这个响应是一个很好的答案但是它仍然有点过于我的头脑。

在更新生产时,我想在这个版本中创建一个分支。 但是,如果需要进行紧急生产修复,如何访问该分支以及如何更新生产。 如何确保生产分支的紧急修复也提交到主干?

IE 。这是我想要有一个更好的解决方案,因为它已经发生了几次

  • Rev 1000在生产中更新
  • Rev 1001 -1005是新的特性请求/Bug 修复程序,将在下一版本中
  • Rev 1006是一个紧急修复,需要推动到生产
  • Rev 1007 -1009更多功能更新
  • Rev 1010应该是更新到生产的下一个修订版

更新:

阅读了SVN的分支部分之后,我正在考虑以下设置。

创建分支时,准备推送到产品

svn copy/trunk/branches/production_01 -m 'Production release'

在生产中,对生产分支执行 switch

svn switch/branches/production_01

如果需要紧急修复,开发人员需要在分支中进行更改:

svn checkout/branches/production_01
//make changes
svn merge/trunk # make sure changes get merged into trunk as well
svn commit -m 'Urgent fix

在生产上,更新最新的分支

svn update

这个过程听起来像在我们的设置中工作?

时间: 原作者:

有不同的解决这个问题的方法,但我认为我看到的最有效的方法是:

  • 所有开发者都进入分支,是 Bug 补丁还是新功能。 这些分支位于CI之下,并部署在自己的环境中进行测试。
  • 进入生产的代码从分支( Bug 固定分支或者特征分支) 合并到主干中。 主干也在 CI 。 经过检验后,它可以移动到生产前,然后生产。 只有trunk的代码被发布到生产。

所以基本上任何进入,的代码都是从一个分支合并的;这样,只包含要释放的代码。

缺点是你需要不同的lc环境,每个分支都有不同的应用服务器域,加上,和前台。

...