声明:
本博客欢迎转载,但请保留原作者信息!
作者:柯晓东
团队:华为杭州OpenStack团队
现在网上向社区提交代码的文档已经年久失修,最近在给实习生介绍openstack,这里总结一下,也顺便为他们准备素材。
提交代码只能在linux下(因为提交后要执行review,window上没有发现对应的软件),下面所有操作都是在ubuntu14上完成的。如果使用vmware,可以用一下我的镜像文件,用户名密码都是 stack。 http://pan.baidu.com/s/1o7jwsFC
(1)生成带邮箱的密钥
ssh-keygen -t rsa -C kexiaodong@huawei.com
显示出密钥内容,后面注册时有用
cat /home/fsp/.ssh/id_rsa.pub
(2)在三个网站,用上述邮箱注册账号。
https://www.openstack.org/profile
https://launchpad.net/+login
https://review.openstack.org/#/settings/
在后面2个网站填入上述公钥
review网站依赖前面2个,所以要最后弄。同时在review网站还需要签署协议和添加联系信息。
最后需要在reivew的网站上获取http的password,这个在设置环境变量的时候有用。
(3)安装git-review,并设置git的环境变量。下面以提交到nova为例进行讲解,如果是提交到其他工程,请把nova替换为其他工程名。
apt-get install git-review
(4)clone下来项目,checkout一个分支,然后修改。
cd /home/stack
git clone https://github.com/openstack/nova.git
# 下载commit-msg
wget https://raw.githubusercontent.com/themalkolm/git-boots/master/hooks/commit-msg.gerrit
cp commit-msg.gerrit commit-msg
# 将commit-msg移到hook目录
mv commit-msg nova/.git/hooks
# 设置git参数,其中的xxxx为git review网站上面“Http Password”里面的密码
cd nova
git config --global core.editor vim
git config --global user.name "kexiaodong"
git config --global user.email "kexiaodong@huawei.com"
git remote add gerrit https://kexiaodong:xxxxxxx@review.openstack.org/openstack/nova.git
(5)提交bug要先去对应组件的bug上报网站报一个bug
https://bugs.launchpad.net/nova/+filebug 。
该网站会先让你用关键字查看这个bug在不在库中,当然不存在,但是你还是要随便查一下,再点击“No, I need to report a new bug”。
然后开始写bug详细内容,写好后点击“Submit Bug Report”,这样能获取到一个 [Bugid]
接着要把bug分配给自己,点击“Assigned to”,把bug分配给自己。
然后再回到命令行checkout代码。
#checkout代码
git checkout -b bug/[Bugid]
现在可以在nova文件夹修改代码....
(6)输入git commit -a,并按规矩commit代码(如下)
git commit -a
# 第一行是title
# 然后空一行
# 接着写修改原因和内容(注意每行只能79个字)
# 然后再空一行
# 最后加上 Closes-Bug: #[Bugid] (changeid会自动产生)
(7)然后触发review
git review
接着review系统就会在对应的组件的网页看到你的提交
https://review.openstack.org/#/q/nova,n,z
(8)再次合入
当同一个问题被人-1后,需要再次修改时,首先在上述原目录改好,然后用
git commit -a --amend
再用 git review发起新一轮review