Gerrit (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Gerrit
Gerrit icon.svg
Gerrit.png
Original author(s)Google
Stable release
3.0.0 / May 14, 2019; 4 months ago (2019-05-14)
Repository Edit this at Wikidata
Written inJava
PlatformJava Platform, Enterprise Edition
Available inEnglish
TypeCode review
LicenseApache License v2
Websitewww.gerritcodereview.com

Gerrit (/ˈɡɛrɪt/ GERR-it) is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. It integrates closely with Git, a distributed version control system.

Gerrit is a fork of Rietveld, another code review tool. Both namesakes are of Dutch designer Gerrit Rietveld.[1]

History[edit]

The initial development of Gerrit started when a code review system for Android was requested. Because many Google developers were involved in the development of Android, the new system needed to have a feature set similar to the Google internal review system Mondrian. For this purpose, Rietveld was started. Because the development of Rietveld was not fast enough, Rietveld was forked and developed separately, then as Gerrit 1.0.

The name originates from that of the Dutch architect Gerrit Rietveld.

The Gerrit 2.x rewrite began development in late 2008, shipping 2.0-rc0 on January 13 2009[2]. The rewrite changed the implementation from Python on Google App Engine to Java on a J2EE servlet container and a SQL database, making it easier to run Gerrit Code Review on any Linux system.

Design[edit]

Originally written in Python like Rietveld, it is now written in Java (Java EE Servlet) with SQL since version 2 and a custom-made git-based db (NoteDb) since version 3. Gerrit uses either Polymer[3] or Google Web Toolkit[4] for its browser-based front-end.

Rietveld was primarily written for Subversion VCS. Gerrit kept Rietveld's main philosophy and supports pre-commit workflow only. That has significant restrictions on how people publish their work and collaborate.

Gerrit is a commit review tool. Developers amend their commits all along the development. That is in direct conflict with git (feature branch) workflow, where development is a series of commits on a feature branch. In git workflow people usually push their commit to a repository where it is available for the other developers to pull or cherry-pick specific commits. These are not available when using Gerrit and individual changes cannot have their own commit messages, as all the changes end up in one commit.

This Gerrit-specific workflow is avoided in favor of the pull request workflow by several git platforms such as GitHub and GitLab. In the pull request workflow complete branches are reviewed and merged.[5] There are projects, such as Go (programming language) which use GitHub and Gerrit at the same time[6]. Due to the process used by the Go team to sync GitHub pull requests to Gerrit, the pull request branch is squashed into a single commit. This loss of granular commit information in the squash is why the Go team recommends contributors to use their Gerrit instance.

Notable users[edit]

See also[edit]

References[edit]

  1. ^ "An Open Source App: Rietveld Code Review Tool". Archived from the original on 17 October 2015.
  2. ^ "Gerrit 2.0-rc0".
  3. ^ "PolyGerrit-ui README.md file in Gerrit version control". Retrieved 7 July 2019.
  4. ^ "Gerrit: Google-style code review meets git". LWN. Retrieved 13 July 2012.
  5. ^ "About pull requests". Github. Retrieved 2019-02-20.
  6. ^ "Contribution Guide - The Go Programming Language". golang.org. Retrieved 2019-02-09.
  7. ^ "People and Roles".
  8. ^ "Contributing Code - The Chromium Projects".
  9. ^ "Chromium OS Developer Guide".
  10. ^ "Coreboot - Developers".
  11. ^ "Gerrit Code Reviews".
  12. ^ "Community powered|CyanogenMod". Archived from the original on 2014-04-21.
  13. ^ "Update and Build Prep | Lineage OS Android Distribution".
  14. ^ "Gerrit on eclipsepedia". Eclipse foundation. Retrieved 2013-06-01.
  15. ^ "Ericsson".
  16. ^ "Fuchsia".
  17. ^ "Using Gerrit Code Review in an Open Source Project".
  18. ^ "The gem5 Simulator".
  19. ^ "Managers Become the Flywheel".
  20. ^ "We're moving to GitHub".
  21. ^ "Google Web Toolkit Blog". Retrieved 2013-07-13.
  22. ^ "Introducing Gerrit - Code Review and Community Contributions".
  23. ^ "Gerrit for LibreOffice". 2012-06-16. Retrieved 2012-06-24.
  24. ^ "gerrit.libreoffice Code Review". Retrieved 2012-06-24.
  25. ^ "Wikimedia engineering moving from Subversion to Git — Wikimedia blog". Blog.wikimedia.org. 2012-02-15. Retrieved 2012-06-21.
  26. ^ "Gerrit". MediaWiki. 2012-06-12. Retrieved 2012-06-21.
  27. ^ "Gerrit Workflow". OpenStack Wiki. Retrieved 2013-02-21.
  28. ^ "Workflow with Github and Gerrit". 2015-06-05.
  29. ^ "Gerrit Introduction". Qt Project. 2012-04-24. Retrieved 2015-07-23.
  30. ^ "Gerrit at SAP". 2014-03-11.
  31. ^ "Gerrit Code Review". Codereview.scilab.org. Retrieved 2012-06-21.
  32. ^ "Gerrit - Tizen Developers". Archived from the original on 2013-11-16.
  33. ^ "TYPO3 Core repository migrated to Git". 2011-03-11. Retrieved 2013-01-26.
  34. ^ "TYPO3's Gerrit Code Review". Retrieved 2013-01-26.
  35. ^ "Improving Operations Efficiency with Puppet". 2015-04-17.
  36. ^ "Puppet Camp Paris: Improving Operations Efficiency With Puppet". shell-tips.com. 2015-04-20.
  37. ^ "Gerrit at Vaadin". 2015-07-21.

External links[edit]