使用gerrit的long rebase
我们的项目是多模块maven项目。该项目依赖于另一个多模块maven项目。 POMS的关系(包括聚合和继承方式)像使用gerrit的long rebase
parent-super-pom |---parent-module-1
|---parent-module-2
|---parent-module-3
|---...
|---parent-module-n
|---child-super-pom
|---child-module-1
|---child-module-2
|---child-module-3
|---child-module-4
一切都在parent
项目是由一个独立的团队进行管理,让叫它framework
。 child
项目中的所有内容都由我们的团队管理,我们称之为product
。
现在framework
已升级为使用spring-boot
以及许多其他重大更改。我们需要开始开发升级product
以使用framework
的最新技术。这个升级过程大约需要一个月的时间(有很多不可编译的提交),因为有很多需要注意的变化来使应用程序工作。与此同时,product
也将在旧的Maven环境中自行开发功能。处理这种情况的最佳方法是什么?
我们使用gerrit代码审查。这些变化首先被推到gerrit上,有自动jenkins工作触发器来运行基本测试。只有构建通过时才能提交更改。也有建立可根据通过格里特评论一些触发器被要求要运行耗时网络测试,集成测试等
我的想法
通过力推动在下面的方面,我的意思是,它已经到 旁路格里特即直接推送到分支不的 实际力量推动,再现历史的git
- 创建
product
升级特性分支,说feature/upgrade
- 确保临时CI的工作是建立这个分公司w.r.t.新的环境,包括点播那些
- 更改推到这个分支升级所需直到应用程序可以正常运行
- 从时间调整基线上
master
分支时间,以避免在升级结束批量冲突(需要在feature/upgrade
力推送) - 最后,推动所有的变化从
feature/upgrade
到master
(将要求master
力推),现在在主配置CI工作开始使用新创建的临时职位 类似配置
此id的缺陷ea是力量推动。我们确保分支机构不会受到这种推动,因为分支机构容易犯错误,组织中只有少数人可以提交此类提交。可能是我不知道我可以在这里使用的一些gerrit功能,或者我的想法是完全错误的。我需要知道处理这种情况的最佳方法是什么。
回答:
为什么不设置监视gerrit事件的小进程,如果提交被推入refs/for/$your_feature_branch
那么它会自动将Verified
标志设置为+1。您甚至可以等待Jenkins将Verified
设置为该分支上的任何值,然后再根据该事件集Verified
再次设为+1。通过这种方式,您可以保证能够独立于Jenkins失败后的版本合并。
以上是 使用gerrit的long rebase 的全部内容, 来源链接: utcz.com/qa/262384.html