Gerrit (software)
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
![]() | |
![]() | |
Original author(s) | |
---|---|
Stable release | 3.2.2
/ June 17, 2020 |
Repository | |
Written in | Java |
Platform | Java Platform, Enterprise Edition |
Available in | English |
Type | Code review |
License | Apache License 2.0 |
Website | www |
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
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 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.
Rietveld was primarily written for Subversion VCS. Gerrit kept Rietveld's main philosophy and supports pre-commit workflow only. This creates significant restrictions on how people publish their work and collaborate.
Design
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.
Frontend
In versions 2.0 - 2.16 Gerrit used Google Web Toolkit[3] for its browser-based front-end. After being developed and used in parallel with GWT, for versions 2.14 - 2.16, a new Polymer[4] web UI replaced the GWT UI in version 3.0.
Gerrit Code Review
Gerrit is a commit review tool. Developers amend individual commits in response to feedback; Gerrit tracks each version of each commit, allowing developers to view the differences between versions, and to rebase individual commits while keeping a shared history in the review interface. Developers can pull individual commits (e.g. by using the 'cherry pick' option) and can push groups of related commits as a patch set.
This patch-based workflow is avoided in favor of the pull request workflow used 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 is why the Go team recommends contributors to use their Gerrit instance.
Notable users
- Android[7]
- Chromium OS[8]
- Chrome OS[9]
- Coreboot[10]
- CollabNet[11]
- CyanogenMod and its successor, LineageOS[12][13]
- Eclipse Foundation[14]
- Ericsson[15]
- Google Fuchsia[16]
- Garmin[17]
- gem5[18]
- Gilt Groupe[19]
- Go[20]
- GWT[21]
- Kitware (e.g. CMake)[22]
- LibreOffice[23][24]
- LineageOS[25]
- MediaWiki[26][27]
- OpenStack[28][29]
- Qt[30]
- SAP SE[31]
- Scilab[32]
- Tizen[33]
- TYPO3[34][35]
- TubeMogul[36][37]
- Vaadin[38]
See also
References
- ^ "An Open Source App: Rietveld Code Review Tool". Archived from the original on 17 October 2015.
- ^ "Gerrit 2.0-rc0".
- ^ "Gerrit: Google-style code review meets git". LWN. Retrieved 13 July 2012.
- ^ "PolyGerrit-ui README.md file in Gerrit version control". Retrieved 7 July 2019.
- ^ "About pull requests". Github. Retrieved 2019-02-20.
- ^ "Contribution Guide - The Go Programming Language". golang.org. Retrieved 2019-02-09.
- ^ "People and Roles".
- ^ "Contributing Code - The Chromium Projects".
- ^ "Chromium OS Developer Guide".
- ^ "Coreboot - Developers".
- ^ "Gerrit Code Reviews".
- ^ "Community powered|CyanogenMod". Archived from the original on 2014-04-21.
- ^ "Update and Build Prep | Lineage OS Android Distribution".
- ^ "Gerrit on eclipsepedia". Eclipse foundation. Retrieved 2013-06-01.
- ^ "Ericsson".
- ^ "Fuchsia".
- ^ "Using Gerrit Code Review in an Open Source Project".
- ^ "The gem5 Simulator".
- ^ "Managers Become the Flywheel".
- ^ "We're moving to GitHub".
- ^ "Google Web Toolkit Blog". Retrieved 2013-07-13.
- ^ "Introducing Gerrit - Code Review and Community Contributions".
- ^ "Gerrit for LibreOffice". 2012-06-16. Retrieved 2012-06-24.
- ^ "gerrit.libreoffice Code Review". Retrieved 2012-06-24.
- ^ "LineageOS Gerrit". Retrieved 2020-03-07.
- ^ "Wikimedia engineering moving from Subversion to Git — Wikimedia blog". Blog.wikimedia.org. 2012-02-15. Retrieved 2012-06-21.
- ^ "Gerrit". MediaWiki. 2012-06-12. Retrieved 2012-06-21.
- ^ "Gerrit Workflow". OpenStack Wiki. Retrieved 2013-02-21.
- ^ "Workflow with Github and Gerrit". 2015-06-05.
- ^ "Gerrit Introduction". Qt Project. 2012-04-24. Retrieved 2015-07-23.
- ^ "Gerrit at SAP". 2014-03-11.
- ^ "Gerrit Code Review". Codereview.scilab.org. Retrieved 2012-06-21.
- ^ "Gerrit - Tizen Developers". Archived from the original on 2013-11-16.
- ^ "TYPO3 Core repository migrated to Git". 2011-03-11. Retrieved 2013-01-26.
- ^ "TYPO3's Gerrit Code Review". Retrieved 2013-01-26.
- ^ "Improving Operations Efficiency with Puppet". 2015-04-17.
- ^ "Puppet Camp Paris: Improving Operations Efficiency With Puppet". shell-tips.com. 2015-04-20.
- ^ "Gerrit at Vaadin". 2015-07-21. Archived from the original on 2016-08-18. Retrieved 2015-07-21.
External links
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/MediaWiki-2020-icon.svg/40px-MediaWiki-2020-icon.svg.png)