【发布时间】:2011-01-20 15:18:33
【问题描述】:
我负责维护一个持续使用 (24/5) 的基于 Web(Java、JSP、Mediasurface 等)的内部系统。
用户提出改进、错误修复和其他业务更改的请求。这些问题单独签署并分配给三到四个开发人员之一。
一旦问题完成,它就会被构建并且代码只提交给 SVN。然后将更改的文件(模板、html、类、jsp)复制到开发服务器并提交到不同的存储库,从那里将它们检出到 UAT 服务器进行测试。 (这通常需要重新启动 Tomcat 服务,有时还需要重新启动 Mediasurface 服务。
然后用户测试并拒绝或批准发布。如果获得批准,则将编辑的文件签出到 Live 服务器,并执行与 UAT 相同的过程。
如果被拒绝,开发者进行相关更改并重新开始发布过程。
这一切都是手动完成的,没有太多控制。在不同的开发人员处理类似文件的情况下,更改有时会被不同步代码上的构建覆盖,而在其他情况下,UAT 中的更改会因为它们混合在与已签署版本相关的文件中而被错误地移动。
我想将此转移到一个更可控和自动化的过程中,其中所有源代码和输出文件都保存在 SVN 中,并发布到由 CI 系统管理的 Dev、UAT 和 Live(我们的 .NET 内部有 TeamCity应用程序)。
我的问题是如何管理多个更改的发布,其中一些将被签署并继续进行,而另一些则被拒绝并返回给开发人员。更改可能在重叠文件上,并且简单地将每个版本合并到 发布分支 意味着必须将被拒绝的更改从分支中撤出。
有没有办法使用 SVN 和 CI 来管理这个,或者我只需要使用当前系统。
【问题讨论】:
标签: svn process build-process continuous-integration