Gitlab hero border pattern left svg Gitlab hero border pattern right svg
GitLab
vs
Gerrit
Decision Kit
Decision Kit

Summary

Gerrit is a self-hosted software application that provides code review functionality. The free web-based tool is open source and can be downloaded and run in Java. Gerrit basically functions as an intermediate between developers and git repositories. In the simplest setup, Gerrit could be used as a simple Git repository hosting without any code review to push code.

The primary functions Gerrit offers its users are:

  • Cloning a Repository: This is the first step to working with the code.
  • Making Code Changes: A single commit is the unit of code that will be reviewed.
  • Asking for a Code Review: Reviewers will be notified via email once you add them. By default, anyone can add reviewers to a Gerrit change.
  • Review Code Changes: Users can review code changes side by side and initiate a conversation for every new line of code added.
  • Iterating Changes: If there is feedback from the code review and a change is needed, be improved a new patch set with the updated code is uploaded
  • Submitting Code Changes: In order to submit changes there is a voting process based on reviewers feedback and votes.

Gerri’s Dashboard supports query operators to search for changes by different criteria, e.g. by status, change owner, votes etc. and can be customized by the user.

GerriForge

GerriForge is one of the main contributors to Gerrit Code Review, providing support and integration services.

The integration services they provide are charged per service. Here are a list of their services:

Integration Service Cost
Plugin for Atlassian Jira \(\) - Contact for Quote
Plugin for IBM RTC \(\) - Contact for Quote
Gerrit and GitHub \(\) - Contact for Quote
Ad-hoc Integration \(\) - Varies

They provide three support tiers:

  Silver Gold Premium
SLA 8x5 24x5 24x7
Users 50 100 100
Starting Cost $1,342/month $30,083/month $8,500/month

Gerrit Strengths

  • Gerrit provides access control for Git repositories and web frontend for code review.
  • You can push the code without using additional command line tools.
  • Gerrit can allow or decline the permission on the repository level and down to the branch level.
  • Gerrit is supported by Eclipse.

Gerrit Gaps

  • No Single Integrated DevOps Application: Reviewing, verifying and resubmitting the code commits slows down the time to market.
  • Users can’t change the sort order in which changes are listed.
  • Administrator rights are required to add repositories on Gerrit.
  • Missing Enterprise Features: Gerrit lacks native support for key enterprise features such as security scanning and code quality checks.
  • Plugins are required to extend and customize the functionality of Gerrit.

Why Wikimedia Moved from Gerrit To GitLab

The Wikimedia Foundation, the American non-profit organization that owns the internet domain names of many movement projects and hosts sites like Wikipedia, has decided to migrate their code repositories from Gerrit to Gitlab. Read more on why they chose GitLab here.

Feature Comparison
FEATURES

Community Support

The GitLab Community Forum is an active and vibrant place for all GitLab users to share and seek support.

Visit the GitLab Community Forum

必需的合并请求批准

当项目需要多次验收时,您可以要求每个合并请求在合并之前都得到批准。通过“必需的合并请求批准”,您可以设置必要的批准次数,并预定义特定的审批人清单,从而通过依次审批的方式来保证代码的质量和标准。

Learn more about merge request approvals

多审批人代码审核

极狐GitLab 为确保严格的代码审查,在合并请求能够被合并之前,您可以要求得到批准的最小用户数量。在代码最终合并前,您也可以撤销批准。

Approvals Documentation

代码评审的批准规则

通过指定正确的审批人列表、最小审批者数量以及受保护的目标分支,确保合适的人员使用批准规则来评审合并请求,进而方便的从工程、体验和产品等不同团队请求评审。

Approvals Documentation

Optional Merge Request Approvals

Code review is an essential practice of every successful project, and giving your approval once a merge request is in good shape is an important part of the review process, as it clearly communicates the ability to merge the change.

Learn more about optional merge request approvals

代码所有者

通过将代码所有者分配到CODEOWNERS文件中,以指明负责项目中代码的团队成员。代码所有者能被自动分配为合并请求审批人,可以根据需要进行设置,并在查看文件时显示。

Learn more about Code Owners

代码所有者分段

代码所有者分段支持每个团队独立配置他们自己的代码所有者配置,来让多个团队照看代码库的公共部分。

Learn more about Code Owners Sections

Image Discussions

Within a commit view or a merge request diff view, and with respect to a specific location of an image, you can have a resolvable discussion. Have multiple discussions specifying different areas of an image.

Image Discussions

Merge Request Commit Discussions

Comment on a commit within the context of a merge request itself

Merge Request Commit Discussions

Git protocol v2 support

Git’s wire protocol defines how clones, fetches and pushes are communicated between the client and server. Git protocol v2 improves performance of fetch commands and enables future protocol improvements.

Learn more about Git protocol v2

Inline commenting and discussion resolution

Code or text review is faster and more effective with inline comments in merge requests. Leave comments and resolve discussions on specific lines of code. In GitLab, Merge Request inline comments are interpreted as a discussion and can be left on any line, changed or unchanged. You can configure your project to only accept merge requests when all discussions are resolved.

Learn more about resolving discussions

Git protocol v2 support

Git’s wire protocol defines how clones, fetches and pushes are communicated between the client and server. Git protocol v2 improves performance of fetch commands and enables future protocol improvements.

Learn more about Git protocol v2

Code review dashboards

Dashboards with a filterable set of code reviews (could be by project, by user, by branch, by status, or a combination of those). Dashboards includes code review status and links to get to them. This makes it easy to see what is going on with code reviews for a desired subset.

Code review with GitLab

Contributor agreements

Users can be required to sign one or more contributor agreements before being able to submit a change in a project.

Read more on the issue

Robot comments

Support for inline comments that are generated by automated third-party systems, for example robot comments can be used to represent the results of code analyzers.

GitLab merge requests store results

Works with multiple repository types

Supports more than one repository type, such as Git, Subversion, Perforce, CVS, Mercurial.

Learn about migrating from other SCMs