Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3829字,纯文字阅读大概需要6分钟。
内容图文
![Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)](/upload/InfoBanner/zyjiaocheng/502/769026acf2a9454aadcb5cdd31fef5a8.jpg)
1、配置SSH key
i) 打开http://gerrit.baidu.com网页,使用邮箱(不加后缀)和密码登录
ii)打开设置页面-SSH Public Keys,添加SSH Public Key
SSH Public Key的添加跟gitLab中key添加类似,可以参考!点击“add”按钮后会报504错误,点击continue刷新页面就添加成功了.
2、下载工程项目,projects→list,选择要下载的项目
3、下载提交代码的hook脚本
在仓库目录下执行命令:scp -p -P 29418 用户名@gerrit.baidu.com:hooks/commit-msg .git/hooks/ 注意替换红色部分的内容
执行成功的提示如下:
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
Open:等待review的提交 Merged:审核通过已经入库的提交记录 Abandoned:取消的review
添加其他人帮你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的提交
红框中时本次提交修改的文件,点击可查看详细的修改行数
选中有问题的代码块,点击弹出的×××小框“press C to comment”即可写出原因或改进意见,点击“Save”保存意见.
最后给本次提交打分,只有本次提交被+2之后才可以入库.
-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失败,提示如下
需要执行上面的“3、下载提交代码的hook脚本”,
2、如果习惯使用source tree的可以在source中添加自定义的action
source tree自定义动作的入口:菜单栏 动作-→自定义操作
提交review时候,在source tree commit时不要勾选push选项,然后执行自定义动作review, review动作的配置如下:
修改完被打回的review,重新提交时,不要使用source tree提交,直接执行自定义动作updateReview, updateReview动作的配置如下:
Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)
标签:continue 原因 执行 本地 getopt lse 改进 菜单栏 菜单
本文系统来源:http://blog.51cto.com/zhaowl/2315702
内容总结
以上是互联网集市为您收集整理的Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)全部内容,希望文章能够帮你解决Gitlab+Gerrit+Ldap+nginx+mysql 之 Gerrit 操作流程(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。