gerrit是怎么使用MySQL_Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)

Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程

1、配置SSH key

i) 打开http://gerrit.baidu.com网页,使用邮箱(不加后缀)和密码登录

4539b215990d12c4a2ddc015e5c2b6bd.png

ii)打开设置页面-SSH Public Keys,添加SSH Public Key

fc2228d83df4d6643c51d3aedd68558f.png

807853d9636dbcb990927ba7a03603c2.png

SSH Public Key的添加跟gitLab中key添加类似,可以参考!点击“add”按钮后会报504错误,点击continue刷新页面就添加成功了.

2、下载工程项目,projects→list,选择要下载的项目

ca935b7525466689d5f732c746ec2091.png

3、下载提交代码的hook脚本

在仓库目录下执行命令:scp -p -P 29418 用户名@gerrit.baidu.com:hooks/commit-msg .git/hooks/ 注意替换红色部分的内容

执行成功的提示如下:

4f8d6384118d5997f13fae36156b14d1.png

4、提交review的流程

修改完本地代码后执行

1)git add.

2)git commit

3)git push origin branchName:refs/for/branchName //注意替换红色部分的内容第一个位本地分支名,第二个位远端分支名;我们实行强制review机制,直接执行git push会报错

4)打开http://gerrit.baidu.com,到ALL→Open列表中找到刚才提交的codeReview,打开后添加reviewer

c042dc945cb9b7ddb28e352f04616853.png

Open:等待review的提交 Merged:审核通过已经入库的提交记录 Abandoned:取消的review

bfb5089f0553e41b6c7b65b8286c7f29.png

添加其他人帮你review代码

为了简化3、4步骤,同时避免分支名字写错的情况,可以使用以下脚本:

review.sh

#bin/bash

git_prefix=".git"

install_commit_msg(){

if [ ! -f ".git/hooks/commit-msg" ]; then

echo "请输入用户名(不需要加后缀)"

read username

gitdir=$(git rev-parse --git-dir);

scp -p -P 29418 ${username}@gerrit.baidu.com:hooks/commit-msg ${gitdir}/hooks/

if [ ! $? -eq 0 ]; then

echo "commit-msg下载错误"

exit 1

fi

fi

}

if [ ! -d "$git_prefix" ]; then

echo "! [Illegal git repository directory]"

echo " 移动脚本到git仓库根目录"

exit 1

fi

if [ ! -d ".git/hooks" ]; then

mkdir ".git/hooks"

echo "mkdir successfull"

fi

while getopts "m:c" arg

do

case $arg in

m)

echo "git commit -a -m ..."

install_commit_msg

git commit -a -m "$OPTARG"

;;

c)

echo "git commit -a --amend -C HEAD"

install_commit_msg

git commit -a --amend -C HEAD;

;;

esac

done

if [ -f ".git/HEAD" ]; then

head=$(< ".git/HEAD")

if [[ $head = ref:\ refs/heads/]]; then

git_branch="${head#/*/}"

else

echo "无法获取当前分支"

exit 1

fi

else

echo "没有git中的HEAD文件"

exit 1

fi

reviewers=("zhao" "cui" "zhang" "sun" "wang" "gao")

echo "当前分支为:$git_branch"

pushUrl="HEAD:refs/for/$git_branch%"

for reviewer in ${reviewers[@]}; do

echo "reviewer人员为${reviewer}"

pushUrl="${pushUrl}r=${reviewer},"

done

pushUrl="${pushUrl%,*}"

echo "pushUrl为:$pushUrl"

git push origin $pushUrl

if [ $? -eq 0 ]; then

exit 0

else

exit 1

fi

PS:1、修改脚本中的域名;2、修改成员:reviewers=("zhao" "cui" "zhang" "sun" "wang" "gao")

1)下载本脚本

2)添加到git工程项目目录下

3)修改脚本中62行,添加合适的reviewer

4)想要提交review时执行命令sh review.sh即可.

5、review别人代码

1)打开http://gerrit.baidu.com,到ALL→Open列表中找要review的提交

635045614dc04a7b675bcc63dc803b92.png

红框中时本次提交修改的文件,点击可查看详细的修改行数

选中有问题的代码块,点击弹出的×××小框“press C to comment”即可写出原因或改进意见,点击“Save”保存意见.

0773e924e3db153cdb29ac1c0f94b6d6.png

最后给本次提交打分,只有本次提交被+2之后才可以入库.

fc0a1b641bacb5e2127fff2d4833ae02.png

-1说明代码有问题,需要提交者修改后自次提交,再次审核,直到+2,点击submit入库

6、修改被打回的代码

修改好被打回的提交后,执行命令

git add .

git commit --amend //注意与第一次提交代码的区别,保证不会产生新的commitID和changeID,仍然使用上次的

git push origin branchName:refs/for/branchName //如果下载了review脚本执行命令:sh review.sh

说明:修改被带回提交时要保证修改的内容和开始创建review的提交在同一个提交里.

常见问题

1、clone第二个工程,提交review失败,提示如下

f6b2e31d7c10b65c4afdb9f39d93b384.png

需要执行上面的“3、下载提交代码的hook脚本”,

2、如果习惯使用source tree的可以在source中添加自定义的action

source tree自定义动作的入口:菜单栏 动作-→自定义操作

979e4aabe72ee9d15220b39c1f1bc26c.png

提交review时候,在source tree commit时不要勾选push选项,然后执行自定义动作review, review动作的配置如下:

8643a101b6a2cc5f0e9b00677812a2af.png

修改完被打回的review,重新提交时,不要使用source tree提交,直接执行自定义动作updateReview, updateReview动作的配置如下:

5b4e8e38ccf309f36d274ead682d4dfb.png

Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)

标签:continue   原因   执行   本地   getopt   lse   改进   菜单栏   菜单

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://blog.51cto.com/zhaowl/2315702

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值