我不太明白如何使用版本号。在我的团队中,我们的基本工作流程如下所示:在开发环境中进行持续开发。每个月我们会冻结代码,将当前应用程序版本部署到单独的QA环境中,由QA人员测试其稳定性和开发人员可能遗漏的任何错误。一旦QA满意(这需要1到2周,具体取决于QA的工作量),QA版本就会部署到我们的生产服务器上。
我们正在从Subversion转移到Git,并尝试设计支持此过程的分支/发布策略。我想做的是:
起点:DEV运行在主干上的1.0-SNAPSHOT版本 在代码冻结时:从主干创建一个新的release-1.0分支。增加主干上的POM版本到1.1-SNAPSHOT 经过QA后:将版本1.0部署到我们的nexus服务器并对存储库进行标记。将release-1.0合并到主干中,以便将来的版本集成任何错误修复或更改。
问题在于,当我将release-1.0合并到主干时,POM的版本会发生冲突。1.1-SNAPSHOT与1.0冲突。解决合并冲突很简单,但它阻止了我自动化此步骤。
理想情况下,发布分支可以作为维护分支保留,开发版本为1.0.1-SNAPSHOT,但我不希望将该更改集成到主干中。否则,我只需删除发布分支并依靠标记创建任何1.0.1版本的热修复分支,因为这仅用于无法等待下一个发布周期的关键生产问题。
我想避免从发布分支中挑选提交并将其合并到主干中,以消除可能遗漏某些内容而未被合并到主干的可能性。
有没有办法使用maven-release插件来管理此过程,或者我注定要手动完成?
我们正在从Subversion转移到Git,并尝试设计支持此过程的分支/发布策略。我想做的是:
起点:DEV运行在主干上的1.0-SNAPSHOT版本 在代码冻结时:从主干创建一个新的release-1.0分支。增加主干上的POM版本到1.1-SNAPSHOT 经过QA后:将版本1.0部署到我们的nexus服务器并对存储库进行标记。将release-1.0合并到主干中,以便将来的版本集成任何错误修复或更改。
问题在于,当我将release-1.0合并到主干时,POM的版本会发生冲突。1.1-SNAPSHOT与1.0冲突。解决合并冲突很简单,但它阻止了我自动化此步骤。
理想情况下,发布分支可以作为维护分支保留,开发版本为1.0.1-SNAPSHOT,但我不希望将该更改集成到主干中。否则,我只需删除发布分支并依靠标记创建任何1.0.1版本的热修复分支,因为这仅用于无法等待下一个发布周期的关键生产问题。
我想避免从发布分支中挑选提交并将其合并到主干中,以消除可能遗漏某些内容而未被合并到主干的可能性。
有没有办法使用maven-release插件来管理此过程,或者我注定要手动完成?
--theirs
或--ours
来无条件接受一个父版本的内容。但因为您可能除了 POM 之外还有其他文件,盲目地接受每个文件的一个版本而不是另一个版本可能会弃掉重要文件。 - Tim Biegeleisen