如何向社区提交代码(2015版)

声明:
  本博客欢迎转载,但请保留原作者信息!
  作者:柯晓东
  团队:华为杭州OpenStack团队

现在网上向社区提交代码的文档已经年久失修,最近在给实习生介绍openstack,这里总结一下,也顺便为他们准备素材。
提交代码只能在linux下(因为提交后要执行review,window上没有发现对应的软件),下面所有操作都是在ubuntu14上完成的。如果使用vmware,可以用一下我的镜像文件,用户名密码都是 stack。 http://pan.baidu.com/s/1o7jwsFC

(1)生成带邮箱的密钥

ssh-keygen -t rsa -C [email protected]

如何向社区提交代码(2015版)_第1张图片

显示出密钥内容,后面注册时有用

cat /home/fsp/.ssh/id_rsa.pub



(2)在三个网站,用上述邮箱注册账号。

https://www.openstack.org/profile
https://launchpad.net/+login
https://review.openstack.org/#/settings/

在后面2个网站填入上述公钥

如何向社区提交代码(2015版)_第2张图片

如何向社区提交代码(2015版)_第3张图片


review网站依赖前面2个,所以要最后弄。同时在review网站还需要签署协议和添加联系信息。

如何向社区提交代码(2015版)_第4张图片

最后需要在reivew的网站上获取http的password,这个在设置环境变量的时候有用。

如何向社区提交代码(2015版)_第5张图片

(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在不在库中,当然不存在,但是你还是要随便查一下,再点击“No, I need to report a new bug”。
然后开始写bug详细内容,写好后点击“Submit Bug Report”,这样能获取到一个 [Bugid]

接着要把bug分配给自己,点击“Assigned to”,把bug分配给自己。

      如何向社区提交代码(2015版)_第6张图片
然后再回到命令行checkout代码。

#checkout代码
git checkout -b bug/[Bugid]
现在可以在nova文件夹修改代码....
 
 

(6)输入git commit -a,并按规矩commit代码(如下)      

  如何向社区提交代码(2015版)_第7张图片

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


你可能感兴趣的:(如何向社区提交代码(2015版))