Gerrit (software): Difference between revisions
Svempalainen (talk | contribs) |
Svempalainen (talk | contribs) |
||
Line 36: | Line 36: | ||
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. |
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.<ref>{{Cite web|url=https://help.github.com/en/articles/about-pull-requests|title=About pull requests|website=Github|access-date=2019-02-20}}</ref> There are projects, such as [[Go (programming language)]] which use GitHub and Gerrit at the same time<ref>{{Cite web|url=https://golang.org/doc/contribute.html#sending_a_change_github|title=Contribution Guide - The Go Programming Language|website=golang.org|access-date=2019-02-09}}</ref>. 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 use their Gerrit instance. |
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.<ref>{{Cite web|url=https://help.github.com/en/articles/about-pull-requests|title=About pull requests|website=Github|access-date=2019-02-20}}</ref> There are projects, such as [[Go (programming language)]] which use GitHub and Gerrit at the same time<ref>{{Cite web|url=https://golang.org/doc/contribute.html#sending_a_change_github|title=Contribution Guide - The Go Programming Language|website=golang.org|access-date=2019-02-09}}</ref>. 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 == |
== Notable users == |
Revision as of 10:11, 24 September 2019
Original author(s) | |
---|---|
Stable release | 3.0.0
/ May 14, 2019 |
Repository | |
Written in | Java |
Platform | Java Platform, Enterprise Edition |
Available in | English |
Type | Code review |
License | Apache License v2 |
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 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
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
- 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]
- MediaWiki[25][26]
- OpenStack[27][28]
- Qt[29]
- SAP SE[30]
- Scilab[31]
- Tizen[32]
- TYPO3[33][34]
- TubeMogul[35][36]
- Vaadin[37]
See also
References
- ^ "An Open Source App: Rietveld Code Review Tool". Archived from the original on 17 October 2015.
- ^ "Gerrit 2.0-rc0".
- ^ "PolyGerrit-ui README.md file in Gerrit version control". Retrieved 7 July 2019.
- ^ "Gerrit: Google-style code review meets git". LWN. Retrieved 13 July 2012.
- ^ "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.
- ^ "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.
External links
- Official website
- Video demo of Gerrit
- Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson