弈心逐梦 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
~/[email protected](注:一路按回车即可)
在.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/[email protected]
点击"Add"按钮,保存SSHPublicKey.
~$sshrunyee
或者
~$ssh-p29418刚才注册的用户名[email protected]
如果出现
gerrit:noshellavailable
Connectiontoreview.vanzo.comclosed.
就说明连接成功了.
如果遇到错误:
Agentadmittedfailuretosignusingthekey.
Permissiondenied(publickey,password).
请在.bashrc中设置环境变量:
exportSSH_AUTH_SOCK=0
三.代码获取
配置对应gerrit用户验证环境
gitconfig--globaluser.namehuangchaojun
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的代码合并是否正确。