这是一个月我试图找出问题的最佳解决方案,这是最好的解决方案。我想知道你是否同意。
我们正在开发一组互连的Web应用程序。我们将每个应用程序视为独立于其他应用程序的单一解决方案。每个应用程序都由不同的项目组成,但这并不重要。
我们用于开发主干新功能。每当我们发布一些实时内容时,我们都会使用版本名称标记trunk版本。例如,假设第一个主干版本标记为1.0.0。当我们开发实现(即我们正在开发1.1.0)时,生产版本会出现一系列错误。我们想要做的是checkout标签1.0.0并纠正1.0.1版本的错误。
现在我们想要完成的是标记EACH修订版本。换句话说,我们希望能够拥有1.0.0,1.0.1,1.0.2 ......
的完美工作副本现在这是我的解决方案,我想知道你是否同意。
等等。我试过了,如果我签出/ tags文件夹,我可以看到所有的版本,perfectyl工作。
现在当我准备好1.1.0时,我应该使用“合并一系列修订”选项合并最后一个标签(或分支,如果一切正确,它们应该在最后一样)。当一切都合并后,我应该有一个完全正常的1.1.0版本,过去修正了修订版。编译,测试然后发布,显然,将其标记到服务器上的/tags/1.1.0文件夹。
你怎么看? 谢谢, 马可答案 0 :(得分:2)
通常所有的开发都是在trunk上进行的,trunk是你发布的基础。您可以使用分支来稳定代码以准备发布,修补发行版或实现无法在主干上开发的功能,原因如下。
当使用分支进行稳定或修补版本时,错误的修复或应该进入稳定分支的更改都是在主干上开发的,并选择性地合并到分支。
使用功能分支时,您提交分支,然后合并回主干(可能从那里到稳定/补丁分支。
简短的故事,我在开发周期中错过了主干,我想知道你如何确保所有更改最终都在主干中,因为这是你的下一个主要功能发布将从/应该从哪里开始的。
答案 1 :(得分:1)
这看起来是一个非常好的过程,除了你的生产分支上的bug修复很可能也需要反映在trunk中。因此,不应该在最后将所有合并到trunk中,因为你已经按照你的方式完成了它。
否则,您似乎正确地使用了分支和标签,因此对此表示赞赏。我已经看到太多的项目无法在源代码控制中识别当前(或其他一些)生产版本(如果你需要修复或回滚,这是必不可少的)。在我看来,没有任何借口。
答案 2 :(得分:1)
您所描述的内容听起来像是标记和分支给我的正常程序。这就是我使用subversion的方式,它运行得非常好。
答案 3 :(得分:0)
听起来不错。
根据已发布的修补程序的数量,我不会为每个次要版本创建分支而烦恼。创建这些,与人们沟通什么结帐/在哪里检查,合并等。冲洗& amp;重复。
每个主要版本都有一个分支,并将其用作“维护”分支,对我们来说效果很好。
定义分支策略并仅在必须执行不适合当前策略的操作时创建新分支。有助于限制分支。