我关注一直在使用(24/5)的内部基于Web的(Java,JSP,Mediasurface等)系统。需要关于发布管理策略的建议或指导
用户提高增强功能,错误修复和其他业务更改的门票。这些问题将单独签署并分配给三个或四个开发人员中的一个。
一旦问题完成,它就会生成并且代码只能提交给SVN。然后,将更改后的文件(模板,html,类,jsp)复制到开发服务器并提交到不同的存储库,从它们签出到UAT服务器的位置进行测试。 (这通常需要重启Tomcat服务,偶尔也需要Mediasurface服务)。
用户然后测试并拒绝或批准发布。如果获得批准,则将编辑的文件签出到Live服务器,并执行与使用UAT相同的过程。
如果被拒绝,开发人员会进行相关更改并再次启动发布过程。
这一切都是手动完成,没有太多的控制。在不同的开发人员正在处理类似文件的情况下,有时会通过在不同步代码上完成构建来覆盖更改,而在其他情况下,UAT中的更改会因为与已签名的发行版相关联的文件混淆而出现错误。
我想将其转移到一个更受控制和自动化的过程中,其中所有源代码和输出文件都保存在SVN中,并发布到由CI系统管理的Dev,UAT和Live(我们有TeamCity供内部使用。 NET应用程序)。
我的问题是如何管理多个更改的发布,其中一些将被签名并移动,其他人将被拒绝并返回给开发人员。这些更改可能在重叠文件上,并将每个版本简单合并到版本分支意味着被拒绝的更改将不得不从分支中退出。
有没有一种方法可以使用SVN和CI来管理这个问题,还是我只需要使用当前的系统。