【发布时间】:2010-09-28 18:21:17
【问题描述】:
这是我试图找出解决问题的最佳方法的一个月,这是最好的。我想知道你是否同意。
我们正在开发一组相互关联的 Web 应用程序。我们将每个应用程序视为独立于其他应用程序的单一解决方案。每个应用程序由不同的项目组成,但这并不重要。
我们用于在主干上开发新功能。每当我们实时发布内容时,我们都会用版本名称标记主干版本。例如,假设第一个主干版本标记为 1.0.0。当我们开发进一步的实现(即我们正在开发 1.1.0)时,生产版本会出现一系列错误。我们正在考虑做的是检查标签 1.0.0 并更正版本 1.0.1 的错误。
现在我们想要完成的是标记每个修订版本。换句话说,我们希望能够拥有 1.0.0、1.0.1、1.0.2 ... 的完美工作副本......
现在这是我的解决方案,我想知道你是否同意。
- 我将我的标记版本 1.0.0 签出到本地 /tags 文件夹
- 我将此版本分支到 /branches/1.0.1 存储库文件夹
- 我将新分支签出到本地 /branches 文件夹
- 我更正了分支 1.0.1 上的错误
- 当 x 提交后一切正常时,我将这个新版本标记到 /tags/1.0.1
对于每个新的错误/新版本等等。我试过了,如果我检查 /tags 文件夹,我可以看到所有版本,完美的工作。
现在,当我准备好 1.1.0 时,我应该使用“合并一系列修订”选项合并主干上的最后一个标签(或分支,如果一切正确,它们最后应该是相同的)。合并所有内容后,我应该有一个完整的 1.1.0 版本,并且过去已更正了修订。编译、测试然后发布,显然,将其标记到服务器上的 /tags/1.1.0 文件夹。
你怎么看? 谢谢, 马可
【问题讨论】:
-
曾经考虑过使用 DVCS?有了这么多的分支(和合并)和标记,它们可能比 SVN 有很大的优势
-
我不确定迁移到 DVCS 是否一定会改变这里的任何东西。分支/标签/主干结构在 SVN 中是标准的。迁移到不同的系统可能会迁移到不同的范例,但不一定是因为它是分布式系统还是集中式系统。
-
@Andrew:+1,我想知道“DVCS 解决所有问题”的想法是从哪里开始的,有些东西只是开发策略,与工具无关。
-
嗨 knittl,抱歉,我真的不知道 DVCS... 使用它们可以获得哪些优势?谢谢,马可
标签: svn tortoisesvn tags branch trunk