【发布时间】:2012-12-20 18:35:46
【问题描述】:
背景
所以,我在上个月的大部分时间里都在使用 MSDeploy、SSDT 和 TeamCity 自动化我们的 web + db 部署。唯一的问题是,出于演示目的,我只在我们的主干分支工作。不用说,当您考虑需要进行并行开发工作(由 SVN 中的分支隔离)时,这种方法很快就会失败。这就是我卡住的地方,希望能找到一些帮助。
我们的情况
- 我们从不必须支持我们软件的多个并发版本
- 客户始终使用当前版本
我的想法(到目前为止)
在我看来,我们真的只需要源代码控制中的两个分支:
- 当前: 主干 - 从中进行部署
- 下一步:当前迭代的开发分支
在新的迭代开始时,Current 将被分支(我们称该分支为 Next)。该迭代的所有开发都将提交给Next,同时,当前版本所需的任何错误修复都将提交给Current。在某一时刻,Next 将“完成”,因此,合并回 Current。
部署
就部署而言,Next 永远不会部署到任何环境中。但是,Current 将由 TeamCity 定期(每次提交、每晚等)自动打包/部署到内部环境。在某些时候,其中一个包会被认为“足够好”,因此会被推到部署流中(通过登台、生产)。
注意事项
鉴于上述过程,将 Next 合并到 Current 将保证 Current 上的“代码冻结”,在此期间不会出现新错误修复可以发布给客户。此错误冻结将持续到 Current 被认为“足够好”以发布给客户,此时 Current 将被标记并且整个过程将重新开始。 p>
问题
- 这种方法/思路合理吗?
- 这种方法在哪里失败?
- 有没有更好的方法来解决这个问题?
非常感谢任何见解/文档。
【问题讨论】:
标签: svn deployment teamcity branching-strategy