我们公司在使用SVN几年之后,现在采用Git。Git Flow的主干/热修复/开发/发布分支非常适合我们的需求。到目前为止,一切都很顺利,除了一个难题。
我们的项目是一个Java应用程序,在项目构建时会生成一个WAR文件。
具体情况如下:
- 我们以master作为生产代码的主干 - 从master中新建热修复分支 - 开发人员提交热修复代码 - QA对热修复进行测试 - 经过QA批准的二进制文件
所以问题来了:
- 应该从热修复分支将二进制文件部署到生产环境中吗? - 还是应该将代码合并到主干,从那里构建、测试,然后再部署到生产环境中?
我知道master应该是用于持有即将部署到生产环境的代码的。因此,我对从热修复分支部署有疑问。
但是,从master部署可能意味着在同一代码库上进行两个QA周期,因为(在热修复和master上)进行的2个构建可能会根据maven依赖项/构建环境等产生不同的二进制文件。进行两个相同的代码库的QA周期是浪费资源的行为。
我在网上搜索了一些相关的内容,但发现很少有人谈及此问题。有些人说他们从master部署,而其他人则从热修复分支部署。主要是因为从master进行构建的通常都是解释性语言项目(如PHP、Perl等),这些语言没有二进制文件需求。
你们是否遇到过这个问题?采取了哪种方法呢?
提前感谢!
我们的项目是一个Java应用程序,在项目构建时会生成一个WAR文件。
具体情况如下:
- 我们以master作为生产代码的主干 - 从master中新建热修复分支 - 开发人员提交热修复代码 - QA对热修复进行测试 - 经过QA批准的二进制文件
所以问题来了:
- 应该从热修复分支将二进制文件部署到生产环境中吗? - 还是应该将代码合并到主干,从那里构建、测试,然后再部署到生产环境中?
我知道master应该是用于持有即将部署到生产环境的代码的。因此,我对从热修复分支部署有疑问。
但是,从master部署可能意味着在同一代码库上进行两个QA周期,因为(在热修复和master上)进行的2个构建可能会根据maven依赖项/构建环境等产生不同的二进制文件。进行两个相同的代码库的QA周期是浪费资源的行为。
我在网上搜索了一些相关的内容,但发现很少有人谈及此问题。有些人说他们从master部署,而其他人则从热修复分支部署。主要是因为从master进行构建的通常都是解释性语言项目(如PHP、Perl等),这些语言没有二进制文件需求。
你们是否遇到过这个问题?采取了哪种方法呢?
提前感谢!