Gerrit & GitLab&Hooks

简介: 用GitLab吧直接(不需要Gerrit配合),界面非常美观,使用方法也很简单,而且也能满足之前的代码审核的要求。所以大家也都转去GitLab吧。

网络异常,图片无法展示
|


第一次在公司见到 Gerrit、一面懵逼。什么xx玩意.....

Gerrit,一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件开发者,可以相互审阅彼此修改后的代码,决定是否能够提交,回退或是继续修改。它使用版本控制系统Git作为底层。

它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。

-----来自 wiki


然后公司同时还使用到了 GitLab、我懵逼了。正常来说、GitLab 已经能满足大部分日常到使用了、到底为啥还要使用 Gerrit。

它分支自Rietveld,作者为Google公司的Shawn Pearce,原先是为了管理Android项目而产生。[2]这个软件的名称,来自于荷兰设计师赫里特·里特费尔德(Gerrit Rietveld)。

=== GitLab wiki


后来了解到它们两者之间的关系和角色、类似如下图片

网络异常,图片无法展示
|


公司给到的 GitLab 账号角色是 Reporter、只能 pull 而不能 push,如果想要 push 代码到分支上、只能先 push 到 Gerrit 中、Gerrit 可能存在代码插件或者人工review、通过之后才能push 成功。Gerrit 和 GitLab 之间会做同步、所以你能即时的在 GitLab 中看到你 push 的代码。


使用 Gerrit 的时候会将一个hook脚本放置在你的项目的 .git/hooks中、

网络异常,图片无法展示
|


里面有各种 hook的脚本、只要你将后缀.sample去掉就会在特定的时候执行。

使用 Gerrit 的时候会用其中的一个脚本在你的commit comment中增加一个 Change-Id的随机值


在 Idea 中 commit 的时候、如果你的项目中存在 hook 脚本、则会出现是否执行hook 脚本的选项

网络异常,图片无法展示
|


我们尝试在 commit 之前进行一次 compile、因为有时候 push 到远程仓库的代码可能并不能编译通过(把不能正常运行甚至不能编译通过的代码push上去、真的会影响其他同事开发)


我们在 pre-commit 中、增加以下命令、因为我的项目是多个模块的、所以还要进去到具体子模块中的 pom文件中。执行的时候目录是在跟 .git 目录在同一层的

网络异常,图片无法展示
|


然后进行 commit

网络异常,图片无法展示
|


可以在执行 commit 之前确实执行了一次 compile。如果执行 hooks的时候返回 非0 就会阻止此次 commit


使用 Gerrit 还有一个点就是、push的时候不能直接push到原来的远程分支

# 这样子是 push 会直接绕过 Gerrit 的代码审阅、所以不能push成功
git push origin master
# 这样子才能
git push origin head:refs/for/master
复制代码


GitLab吧直接(不需要Gerrit配合),界面非常美观,使用方法也很简单,而且也能满足之前的代码审核的要求。所以大家也都转去GitLab吧。

www.cnblogs.com/kevingrace/…

zh.wikipedia.org/wiki/GitLab

zh.wikipedia.org/wiki/Gerrit

目录
相关文章
|
数据可视化 关系型数据库 MySQL
Gerrit的用法及与gitlab的区别
Gerrit的用法及与gitlab的区别
1413 0
Gerrit的用法及与gitlab的区别
|
Java 网络安全 开发工具
|
jenkins 持续交付 Python
jenkins 设置 gitlab web hooks
背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job。   步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plugin,gitlab hook plugin , gitlab plugin(有的插件...
1658 0
gerrit+gitlab整合调试
http://gerrit.ruiy-ci-cd.com:8082
2116 0
|
6月前
|
Linux 应用服务中间件 网络安全
linux安装Gitlab
linux安装Gitlab
165 0
|
3月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
2月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
4月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装