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

Required Merge Request Approvals

When a project needs multiple sign-offs, you can require every merge request to be approved before merging. With Required Merge Request Approvals you can set the number of necessary approvals and predefine a list of specific approvers. In turn, guarantee the quality and the standards of your code.

Learn more about merge request approvals

Multiple approvers in code review

In GitLab, to ensure strict code review, you can require a minimum number of users to approve of a merge request before it is able to be merged. You can undo an approval by removing it after the fact.

Approvals Documentation

Approval rules for code review

Make sure the right people review merge requests with approval rules by specifying lists of eligible approvers, the minimum number of approvals for each, and which target branches they protect. This makes it easy to request review from different teams like Engineering, UX and Product.

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

Code Owners

Assign Code Owners to files to indicate the team members responsible for code in your project using a CODEOWNERS file. Code owners are assigned automatically as merge request approvers, can be set as required and shown when viewing files. Sections allow each team to configure their own code owners configuration independently, allowing multiple teams to look after common parts of the codebase.

Learn more about Code Owners

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