记录一次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
- 点赞
- 收藏
- 关注作者
评论(0)