记录一次Gerrit的升级

举报
烟花易冷 发表于 2018/12/27 23:09:53 2018/12/27
【摘要】 Gerrit的升级谷歌Android开源项目在Git的使用上有两个重要创新,一个是为多版本库协同而引入repo,另一个就是Gerrit–代码评审服务器.Gerrit为Git引入的代码审核是强制性的,也就是说除非特别的授权设置,向Git版本库的推送必须经过Gerrit服务器,修订必须经过代码审核的一套流程之后,才可能经批准并纳入正式代码库. 谷歌会定期发布Gerrit相关稳定版本,目前最新的版...

Gerrit的升级

谷歌Android开源项目在Git的使用上有两个重要创新,一个是为多版本库协同而引入repo,另一个就是Gerrit–代码评审服务器.Gerrit为Git引入的代码审核是强制性的,也就是说除非特别的授权设置,向Git版本库的推送必须经过Gerrit服务器,修订必须经过代码审核的一套流程之后,才可能经批准并纳入正式代码库. 谷歌会定期发布Gerrit相关稳定版本,目前最新的版本已经达到2.15.定期更新Gerrit版本不仅可以体验新版本带来的流畅性和新的特性,也可以避免一些早期版本可能存在的Bug.文中简单介绍升级过程.

Gerrit升级前的准备

Gerrit在升级前需要做一些准备,比如说下载相关的版本(eg:2.9,2.10,2.11 etc.),备份数据库,以便后期数据的迁移&恢复等.

tar zcvf review_site-20170601.tar.gz review_site   \\ review_site是Gerrit安装的路径
mysqldump -u gerrit2 -p PASSWD > reviewdb-20170601.sql  \\ 备份mysql数据库

Gerrit升级过程

注释:文中以2.8–2.9 作为说明案例

su - gerrit2 
sh ~/review_site/bin/gerrit.sh stop  \\ 关闭Gerrit服务
java -jar gerrit-2.9.war init -d review_site  \\ 重新初始化&安装
java -jar gerrit-2.9.war reindex --recheck-mergeable -d review_site  \\ 重新构建索引,主要是将老版本的数据重新导入到新版本
~/review_site/bin/gerrit.sh start  \\ 重索引完毕后,重新开启Gerrit服务

注意事项:

1)在升级版本的时候,尽量不要跳跃式升级,如直接从2.8升级到2.12版本,可分步升级:2.8–2.9,2.9–2.10,2.10–2.11,2.11–2.12 (原因:Gerrit每一个版本都会引入不同的数据,并且需要对数据库进行二次操作(包括删除/修改等),其次不同的版本需要不同的插件和依赖包)


2)每安装/升级完一个版本后都需要验证是否有数据的丢失,是否可以正常的进行代码的下载/提交/评审等,如果失败则通过log进行补救工作


3)每一个版本的升级过程中均需要进行重索引,且越往后升级重索引需要的时间越长.


4)2.9–2.10升级过程中,JAVA需要JAVA 7的版本,应先更新java版本,否则在升级Gerrit后会导致Gerrit无法开启


5)2.10以后的版本升级重索引过程中,取消了“–recheck-mergeable”参数,即重索引命令变成了: java -jar gerrit-2.11.war reindex –index -d review_site


6)在重新init时,最后几步问是否更新相关插件,一定要选择 Y,否则,插件将不会被更新,旧版本插件无法在新gerrit版本中使用


7)附2.8–2.9重索引部分log

gerrit2@GIT-SERVER:~$ java -jar gerrit-2.9.war reindex --recheck-mergeable -d review_site 2>&1 | tee reindex-2.9.txt
[2017-05-06 12:17:33,065] INFO  com.google.gerrit.server.cache.h2.H2CacheFactory : Enabling disk cache /home/gerrit2/review_site/cache
Collecting projects:    230
[2017-05-06 12:17:35,950] WARN  com.google.gerrit.server.cache.h2.H2CacheImpl : Entries cached for jdbc:h2:file:/home/gerrit2/review_site/cache/diff have an incompatible class and can't be deserialized. Cache is flushed.
Reindexing changes: projects: 70% (161/230), 73% (2835/3864) (\)[2017-05-06 12:20:47,486] ERROR com.google.gerrit.server.index.ChangeBatchIndexer : repository not found: /home/gerrit2/review_site/git/platform/niubi
Reindexing changes: projects: 100% (230/230), 99% (3862/3864), done    
Reindexed 3862 changes in 227.1s (17.0/s)


8) 附Gerrit升级过程应注意的事项:http://www.qdfuns.com/notes/19519/360c5520093835754e3a2d15af3ee67e.html

其他版本升级

每次升级之前注意备份代码库和相关数据库,升级完成后,验证数据的完整性,看是否可以正常上传下载代码等。

2.9.x – 2.10.x —- jdk版本 1.7

sudo su gerrit2 
~/review_site/bin/gerrit.sh stop
java -jar gerrit-2.10.war init -d review_site
java -jar gerrit-2.10.war reindex -d review_site
~/review_site/bin/gerrit.sh start

2.10.x – 2.11.x

sudo su gerrit2 
~/review_site/bin/gerrit.sh stop
java -jar gerrit-2.11.2.war init -d review_site
java -jar gerrit-2.11.2.war reindex -d review_site
~/review_site/bin/gerrit.sh start

2.11.x – 2.12.x

sudo su gerrit2 
~/review_site/bin/gerrit.sh stop
java -jar gerrit-2.12.3.war init -d review_site
java -jar gerrit-2.12.3.war reindex -d review_site
~/review_site/bin/gerrit.sh start


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。