1. 创建一个 Launchpad(https://launchpad.net/openstack )账号,加入OpenStack社区。
2. 在(https://www.openstack.org/profile )上注册账号(这里的账号与1.中的账号,邮箱应该一致),并成为Foundation Member(否则后面提交会出现问题)。
3. 进入(https://review.openstack.org ),登陆。
4. 进入(https://review.openstack.org/#/settings/ )在里面填写如下信息
4.1. 在Profile中的Username
4.2. 在Agreements中签署协议(个人是ICLA)
4.3. 在Contact Infomation中的所有,注意如果之前不是Foundation Member就会出现无法提交问题。
4.4. 在HTTP Password中Generate Password,这时假设是用户名密码如下:
Username: aaaa
Password: Cq1PxP1aj19P
4.5. 在SSH Public Keys中添加一个key:
附以下说明获取SSH Key,获取后,添加到SSH Public Keys中
How to Generate an SSH Key
(1)From the Terminal or Git Bash, run ssh-keygen Confirm the default path .ssh/id_rsa
(2)Enter a passphrase (recommended) or leave it blank. Remember this passphrase, as you will need it to unlock the key whenever you use it.
(3)Open ~/.ssh/id_rsa.pub and copy & paste the contents into the box below, then click on "Add".
(4)Note that id_rsa.pub is your public key and can be shared, while id_rsa is your private key and should be kept secret.
5. 配置你的git:
建立一个文件夹
mkdir openstack_src
cd openstack_src
git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"
6. 安装git-review
Ubuntu或者其他大部分Linux系统:
#注意安装前需要安装pip
sudo apt-get install python-pip
sudo pip install git-review
注意:
对于 Ubuntu 12.04 或更高版本,在一个终端中运行
sudo apt-get install git-review
命令。
对于 Ubunu 12.04 之前的版本,则运行
sudo pip install git-review
命令。
7. 工程设置:
#获取项目代码
git clone git://github.com/openstack/nova.git
cd nova
#如果之前没有增加过远程仓库,这里的用户名和密码就是4.4.中的用户名和密码
git remote set-url gerrit https://<username>:<http-password>@review.openstack.org/openstack/nova.git
#检查git-review检查是否可以提交代码review
git review -s
#获取仓库最新代码
git remote update
git checkout master
git pull --ff-only origin master
8. 提交bug或blueprint
8.1. 建立bug或blueprint
例如:提交 nova 的 bug,访问 https://launchpad.net/nova。
单击 Report a bug,然后输入概要信息和所需的信息。
单击 Submit bug report 按钮。此 bug 具有一个链接:https://bugs.launchpad.net/nova/+bug/1087674 和一个 bug 号:1085436。
在 Assigned to 列中将这个 bug 分配给你自己。
8.2. 建立分支,提交
在 nova中为此 bug 创建一个分支(分支名称 Bug1085436):
打开一个终端并转到 nova目录。
通过
git checkout master
确保 keystone 位于主版本中。
运行
git checkout -b Bug1085436
命令。
(blueprint 的话是 BP-NAME)
在分支 Bug1085436 中修改 nova代码。
将该代码提交给 Gerrit:
打开一个终端并转到 nova目录。
运行
git commit -a
命令。
输入一些注释。第一段应该是一句话的简介;第二段可以是详细说明(可选);如果此分支修复一个 bug 或一个蓝图,则添加 Fixes Bug1085436 或 Blueprint XXXX 作为最后一段。
运行 ctrl+o 命令,按下 Enter 键,然后运行 ctrl+x。
运行
git review
提交代码
注意:如果出现下述信息,请在4.3. 中的Contact Infomation里填写完整联系信息。
8.3. 检查提交的修补程序:
转到 https://review.openstack.org 并使用您的 Launchpad 帐户登录。
从顶部水平导航器中,单击 My > Changes,然后您可以找到您已提交的修补程序。
在此演示中,链接为 https://review.openstack.org/#/c/123456/。任何用户都可以查看此修补程序。任何开发人员都可以给出注释。
下图为使用git review提交后的截图:
8.4. 第二次修改后提交
提交更改
git commit -a --amend
填写注释,注意要在末尾添加分支信息和Change-Id
Blueprint xxxxxxxx
Change-Id: XXXXcec49f0da8a1f27f665cea8efd4e66943XXXX
或
Bug xxxxxxxx
Change-Id: XXXXcec49f0da8a1f27f665cea8efd4e66943XXXX
提交至服务器
git review
8.5. 如果出现冲突或其他问题,可以用下面方式提交
第二次修改完之后提交
#解决冲突
git rebase --abort
#暂存到栈里
git stash
#切到主分支
git checkout master
#解决权限问题
sudo chown -Rc $UID .git/
#拉取
git pull
#切回自己的分支
git checkout <branch>
git rebase master
#如果出现问题解决后,继续
git rebase –continue
#从栈中取出修改
git stash pop
#提交并上传
git commit -a --amend
git review
参考:
(1)http://www.ibm.com/developerworks/cn/cloud/library/cl-contributecode-openstack/
(2)http://zqfan.github.io/openstack/2014/09/23/git-review/