Gerrit vs GitHub vs GitLab


Reading time: 30 minutes

The main advantage of Gerrit as compared to GitHub and GitLab is that it has only features which are absolutely necessary which makes it a perfect fit for professional use. GitHub and GitLab takes a social media approach towards development.

The points we have covered in our detailed comparison are:

  • Commit habit/ Gamification
  • Code Review
  • UI of GitHub, GitLab and Gerrit
  • Different Ideology
  • Conclusion/ Guide to choose one

Following is the brief summary:

Point (out of 5) GitHub GitLab Gerrit
Socially restricted 3 3 5
Code review conclusion 2 4 5
Simiplicity 4 4 5
Code review details 5 4 2
Team work 5 5 3
Individual growth 5 4 2
Discussion 5 5 1
End user interaction 5 5 0

Commit habit/ Gamification

With the rise of GitHub, developers have made up a habit to make as many commits as possible. It is a part of gamification which was developed by GitHub and later, followed by GitLab.

Gerrit fights this by the practice that one commit translates to one pull request. In a professional setting, you can expect others to merge multiple pull requests for a single change, developers are forced to restrict to one commit for a change/ feature.

In short, there is no gamification feature in Gerrit. In Gerrit's user profile, you will only see the list of pull requests by the user and the pull request that needs to be reviewed. No other details.

The main scope of gamification in GitHub and GitLab is this contribution graph:

github_graph

Code Review

Gerrit's code review is more straight to the point than that of GitHub and GitLab. Gerrit provides two parameters namely code-review and which reviewers need to score and it determines the state of the pull request.

On the other hand, at GitHub and GitLab, one need to arrive at the conclusion by going through the discussion and may add a tag to reflect the status.

The major difference is that individual voting is maintained at Gerrit while at GitHub, a single conclusion needs to be arrived at. In this sense, GitHub demands more collaboration while Gerrit focuses on Individual contribution.

In GitHub and GitLab, code review is restricted to adding comments, blocking merge until approved by specific group of people, notifying people associated with that specific code automatically and adding tags on pull requests to denote status of the pull request.

On the other hand, Gerrit takes a more individual approach. It has the feature to add comments on the changes but all comments are maintained in the same thread so it may be difficult to follow and keep track of. There are two scores associated with a pull request review:

  • Code-Review: (-2 or -1 or 0 or 1 or 2)
  • Verified: (-1 or 0 or 1)

The meaning for the different scores of Code-Review are as follows:

  • -2: This pull request should not be merged
  • -1: Some changes in the pull request will be preferred
  • 0: No opinion
  • 1: Looks good but someone else must approve
  • 2: Looks good and can be merged

The meaning for the different scores of Code-Review are as follows:

  • -1: The code does not work as expected
  • 0: I did not verify the code by running it
  • 1: The code runs as expected

In this view, the overall conclusion of review is very clear in Gerrit but tracking the individual points may be difficult. GitHub and GitLab will be a good fit for review a pull request in depth and keep track of everything easily.

UI of GitHub, GitLab and Gerrit

This is how the Gerrit homepage looks like:

homepage

It is focused on the work you have done and the incoming code review work completely. No other details. Even the project page is simple.

To understand the difference, go through this Project page on GitHub.

Different Ideology

There is no concept of fork or personalized profile in Gerrit. Gerrit's focus is on the overall result as a team or company while in GitHub and GitLab, focus is both on personal and team growth.

The focus of Gerrit are:

  • Keep contribution process simple and focussed
  • Restrict discussions
  • Keep all unnecessary details like number of commits out

The focus of GitHub and GitLab are:

  • Allow both personal and team growth
  • Encourage discussions between contributors
  • Keep the overall process interesting by giving various attributes

In this view, GitHub and GitLab has taken a social media approach towards development while Gerrit is like a private restricted community.

Conclusion

Following is a brief summary of our comparison of Gerrit vs GitHub vs GitLab:

Scoring of our comparison (all put of 5):

Point (out of 5) GitHub GitLab Gerrit
Socially restricted 3 3 5
Code review conclusion 2 4 5
Simiplicity 4 4 5
Code review details 5 4 2
Team work 5 5 3
Individual growth 5 4 2
Discussion 5 5 1
End user interaction 5 5 0

Gerrit is not suited for discussions and interaction with the end user like issue reporting. For such cases, GitHub or GitLab will be a much better fit. Gerrit shall be considered as an option if:

  • You have a different platform for discussion
  • Keep development focused only on a team level by removing all distractions
  • Keep things related to code review to the point and short
  • Keep the code development platform completely professional with no interaction with the end user.

For other cases, GitHub and GitLab may address your needs better.

With this, you must have got the complete idea of the comparison between GitHub, GitLab and Gerrit. Enjoy and choose wisely.