声明:
本博客欢迎转载,但请保留原作者信息!
作者:柯晓东
团队:华为杭州OpenStack团队
现在网上向社区提交代码的文档已经年久失修,最近在给实习生介绍openstack,这里总结一下,也顺便为他们准备素材。
提交代码只能在linux下(因为提交后要执行review,window上没有发现对应的软件),下面所有操作都是在ubuntu14上完成的。如果使用vmware,可以用一下我的镜像文件,用户名密码都是 stack。 http://pan.baidu.com/s/1o7jwsFC
(1)生成带邮箱的密钥
ssh-keygen -t rsa -C [email protected]
显示出密钥内容,后面注册时有用
cat /home/fsp/.ssh/id_rsa.pub
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 "[email protected]" git remote add gerrit https://kexiaodong:[email protected]/openstack/nova.git(5)提交bug要先去对应组件的bug上报网站报一个bug https://bugs.launchpad.net/nova/+filebug 。
接着要把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