Gerrit开发配置指南¶

弈心逐梦 2017-06-10

Gerrit开发配置指南¶

准备工作:地址映射¶

Windows下:C:\WINDOWS\system32\drivers\etc\hosts

Linux下:/etc/hosts命令:sudovi/etc/hosts

往hosts文件添加:

192.168.1.152id.runyee.com

192.168.1.152review.runyee.com

192.168.1.152www.runyee.com

一.注册Gerrit账户

请提交相关用户信息至SCM处单独开通账户

二.SSH配置(又叫配repo)

~$cd~

~$mkdir.ssh如果有.ssh文件夹,就直接执行~$cd.ssh进入.ssh

~$cd.ssh

~/.ssh$ssh-keygen-trsa-Cmephone.huangchaojun@gmail.com(注:一路按回车即可)

在.ssh文件夹里添加新文件config,内容如下:

Hostrunyee

Hostnamewww.runyee.com

Port29418

Userhuangchaojun(在gerrit里填写的用户名Username)

PubkeyAuthenticationyes

IdentitiesOnlyyes

PasswordAuthenticationno

IdentityFile~/.ssh/id_rsa

进入gerrit-Settings-SSHKeys,填入(用户名)Username(必须和config文件里的User一致),点击"ChangeUsername"保存;

将~/.ssh/id_rsa.pub的内容复制到"AddSSHPublicKey"一栏,文件内容如下所示:

ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCgpLHmakdPDICCN8uwkkBiivMgXzofXCQ1f/PPaBri2dwseIkGY64bCdlZFcTfv3SchdAsv04adZmx31gszzRyY/rjlOGaIzkC5hroxY1AIfewryMH8I36M/0Sx/qV5I/7bQNu6osx1ZUtkvqF/yhy1j80vdWCVQ4c2M5Qlkqo+E+NeAoHjZtJaIVzMLgV0V1kfTwYQVHGu9a7UJH9PCKCpTAVvX6rA6ELZwcWUrv+apLlT9trxIHCHdehJ4kUkOFI4ouaUZ9/uX0P/uxlkGGeVWmguBnvE1iOsiq+Fmsqc1kcQXdJ70Qum1vlvXG7KDxYSi0PvfO/J+Ba9bgbBolXmephone.huangchaojun@gmail.com

点击"Add"按钮,保存SSHPublicKey.

~$sshrunyee

或者

~$ssh-p29418刚才注册的用户名mephone.huangchaojun@gmail.com

如果出现

gerrit:noshellavailable

Connectiontoreview.vanzo.comclosed.

就说明连接成功了.

如果遇到错误:

Agentadmittedfailuretosignusingthekey.

Permissiondenied(publickey,password).

请在.bashrc中设置环境变量:

exportSSH_AUTH_SOCK=0

三.代码获取

配置对应gerrit用户验证环境

gitconfig--globaluser.namehuangchaojun

gitconfig--globaluser.emailmephone.huangchaojun@gmail.com

1)单个项目获取

运行ls-projects命令查看所有相关Git项目:

sshrunyeegerritls-projects

使用Git命令Checkout单个项目,例如:

gitclonerunyee:tools/repo

2、整套代码获取(以MT7172-KK1-V1.7为例)

curlhttp://192.168.1.152/repo/repo>repo

chmod+xrepo

./repoinit-ussh://runyee/MT7172-KK1-V1.7/manifest.git

./reposync

注:

可将~/bin添加至PATH环境变量

echo"exportPATH=~/bin:$PATH">>~/.bashrc

.~/.bashrc

curlhttp://192.168.1.152/repo/repo>repo下载repo,将其拷贝至~/bin/目录

避免每次获取单独获取repo

四.代码提交流程

1、获取相关代码,开发修改,编译验证,注意相关代码格式和注释

2、提交流程(请熟悉git基本命令)

运行gitaddXXfiles添加相关修改文件到缓存区

运行gitcommit提交至本地仓库,再运行:

gitpushrunyeeHEAD:refs/for/branch(对应分支)

说明:

如果不是用repo来获取,而是gitclonerunyee:platform/packages/apps相应目录

可以用:gitremote-v来查看具体的分支是master还是release。

如果是origin:

提交改动变为:gitpushoriginHEAD:refs/for/F660

之后就可以在Gerrit界面看到刚才的提交.

3、代码审核与验证

所有代码都应该走gerrit.大致流程为:

1)Developer开发,提交到gerrit库

2)Reviewerreview代码

3)scmapply这个patch

4)scm将patch打到相关分支(比如,从master=>release)

5)scminspector每两天检查一下scm的代码合并是否正确。

相关推荐