Svn 如何在不损坏主干的情况下测试新功能?

Svn 如何在不损坏主干的情况下测试新功能?,svn,version-control,Svn,Version Control,我为每个新功能创建分支。然后在将它们发送到测试站点之后,我将它们合并到主干中。这意味着主干不稳定。 我想知道是否有更好的方法 编辑 在阅读了评论之后,我意识到我应该指定它是一个web应用程序。因此,一个用于测试每个分支的网站似乎有点难以维护 为什么在测试完成之前要将开发合并到主干中?您可以等到测试确保更改不会破坏系统后再将其合并到主干 您的总体合并策略是什么?您有释放分支还是从主干中释放?在mergine返回主干之前,您不能测试分支吗 否则,像这样的分布式版本控制系统可能是前进的方向。有了它,您

我为每个新功能创建分支。然后在将它们发送到测试站点之后,我将它们合并到主干中。这意味着主干不稳定。

我想知道是否有更好的方法

编辑
在阅读了评论之后,我意识到我应该指定它是一个web应用程序。因此,一个用于测试每个分支的网站似乎有点难以维护

为什么在测试完成之前要将开发合并到主干中?您可以等到测试确保更改不会破坏系统后再将其合并到主干


您的总体合并策略是什么?您有释放分支还是从主干中释放?

在mergine返回主干之前,您不能测试分支吗


否则,像这样的分布式版本控制系统可能是前进的方向。有了它,您可以为每个功能定义新的存储库,并进行测试,然后推送到“主干”存储库。

我更喜欢保持主干始终稳定,我对这个主题进行了很好的讨论。

有一点是,您可以在分支上进行测试,然后再合并回来。此外,主干通常不被视为稳定的开发,您可以不时地创建快照,在不添加特性的情况下修复它们上的bug(如果特性有缺陷或不完整,甚至可以删除),并将这些分支作为稳定的发布


编辑:进一步解释一下:长时间保持功能分支与主干分离可能会导致集成问题。您的团队能够识别后期冲突的更改—不仅在源代码级别,而且在语义或数据级别。保持主干电流可以很快发现这些问题。因此,我更喜欢在单独的分支上稳定。

您可以拥有分支/新功能和分支/稳定

树干不稳定,但当你“冻结”树枝上的树干时。。。然后是稳定分支。

我使用以下命令:

分支:不总是编译的,不总是稳定的

主干:总是编译的,不总是稳定的

标记:始终编译,始终稳定

在将标签转换为实时发布标签之前,对标签进行最终测试


这样,主干是否不稳定并不重要,您需要主要使用“标记”,它只是将特定版本的主干标记为稳定的东西。标记通常用于标记发布,这意味着代码对于标记的版本是稳定的

这样做的方法是维护一个所有成员都向其贡献代码的主干。如果一个成员想要开发和测试一个新特性,他会创建一个分支,开发他的东西,测试它,然后合并到主干中。当您决定发布中继的下一个稳定版本时,您将测试中继代码,如果发现稳定,则将该中继的特定版本标记为发布版本或稳定版本。否则,修复主干或分支中的错误并将其合并回主干,再次测试主干,如果发现稳定,则将其标记为稳定版本。在这里,你总是认为标签是一个稳定的版本,树干是开发版本,而你的分支是实验版本。p>
但即使在这里,您也需要对进入后备箱的内容以及决定稳定版本的内容进行一些质量控制。

为什么总是有人不知道如何分支,那么神奇的银弹就是DVCS?很抱歉,工具不能带来无能。我真的很喜欢这个评论,我认为很多人在使用“将分支合并到主干”时忘记了集成问题。主干包含发布。它也是一个web应用程序。我们遵循以下过程:-开发人员正在“暂存”数据库上使用他们的机器;-然后将更改推送到使用与开发人员相同的数据库的临时区域上;-如果测试通过,我们会将文件推送到我们的预生产网站上,该网站连接到具有新数据的数据库;-如果一切正常,我们会把所有的修改都推到生产上。我也是。我现在意识到,真正的问题是当它是一个web应用程序时如何做。QA分支的一个网站需要几个Apache配置。我想是某种自动设置,我们现在在这个模型中有网站和应用程序的东西,它工作得很好。