本篇基本是对https://wiki.openstack.org/wiki/GerritWorkflow的翻译,总结一下,以备后用。有说的不到位或不准确的地方,请有经验的各位不吝赐教。先引用一张wiki上的流程图:
1、签署ICLA
(https://review.openstack.org/#/settings/agreements),注意一定要把信息填全,特别是https://review.openstack.org/#/settings/contact里下面那几个,如果之前没有在OpenStack Foundation注册,会提示注册。如果是代表公司,邮箱***是公司(huawei)邮箱。
可能会用到的英文:
公司名:Huawei Technologies Co. Ltd
地址:No.38 Tuanjie Road, Xi'an Hi-tech Industries Development Zone
2、上传自己的SSH Key
(https://review.openstack.org/#/settings/ssh-keys),用于通过SSH向gerrit push代码,方法参见:https://help.github.com/articles/generating-ssh-keys
3、配置Git Bash
git config --global user.name "XXX"
git config --global user.email "XXX@XXXXXX.com"
注意跟gerrit账户一致。
4、安装git-review
参见:http://www.mediawiki.org/wiki/Gerrit/git-review
5、修改代码
下载代码,以nova为例:
git clone git://github.com/openstack/nova.git
配置工程感知gerrit:
cd nova
git review -s
首先会确保能使用你的ssh key登录gerrit,默认使用当前git环境变量配置的用户,否则,会提示输入gerrit用户名,可以通过这个链接查看gerrit用户名。
成功后,会在nova目录下生成一个.gitreview目录
先确保代码是***的:
git checkout master
git pull
新建分支,如果是blueprint,分支名是“bp/BP-NAME”,其中的BP-NAME是在launchpad上bp的名称;如果是修复bug,分支明是“bug/BUG-NUMBER”,其中BUG-NUMBER可以在bug页面上找到:
git checkout -b BRANTCH-NAME
6、提交代码
在单独的一行中写summary(小于50个字符),然后第二段进行详细的描述。如果是实现bp或修复bug,需注明:
blueprint BP-NAME
bug BUG-NUMBER
一个示例:
- Adds some summary less than 50 characters
- ...Long multiline description of the change...
- Implements: blueprint authentication
- Fixes: bug #123456
详细的代码提交信息,参见:https://wiki.openstack.org/wiki/GitCommitMessages
修改完代码后,记得跑通UT测试。
然后提交代码,申请review
git commit -a
git review
7、review
提交review之后,会出现在https://review.openstack.org,可以查看状态和信息,自动跑CI,然后代码检视专家就可以进行代码检视。
如果jenkins报了failure,可以查看日志排错。如果确认不是自己的patch导致,可以在comment里留言“recheck no bug”,重新跑test。
8、修改
如果review过程中,发现代码需要修改,再次提交时直接使用已存在的Change-Id:
git commit -a --amend
git review