如何向OpenStack提交代码(详细步骤)

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里填写完整联系信息。

235726_6acn_553781.jpg


8.3. 检查提交的修补程序:

转到 https://review.openstack.org 并使用您的 Launchpad 帐户登录。

从顶部水平导航器中,单击 My > Changes,然后您可以找到您已提交的修补程序。

在此演示中,链接为 https://review.openstack.org/#/c/123456/。任何用户都可以查看此修补程序。任何开发人员都可以给出注释。

下图为使用git review提交后的截图:

235131_9jJP_553781.jpg


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/

(3)http://kiwik.github.io/openstack/2014/08/26/git-review%E6%8F%90%E4%BA%A4%E4%BB%A3%E7%A0%81%E5%A4%B1%E8%B4%A5%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/


转载于:https://my.oschina.net/crooner/blog/503544

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值