blob: c7ce2fb064b92317be539f8daee4cb207cfd6f39 [file] [log] [blame] [view]
# Origin Story
## Google Mondrian
Google developed [Mondrian], a Perforce based code review tool to
facilitate peer-review of changes prior to submission to the central
code repository. Mondrian is not open source, as it is tied to the
use of [Perforce] and to many Google-only services, such as
[Bigtable]. Google employees have often described how useful Mondrian
and its peer-review process is to their day-to-day work.
[Mondrian]: https://www.youtube.com/watch?v=sMql3Di4Kgc
[Perforce]: http://www.perforce.com/
[Bigtable]: http://research.google.com/archive/bigtable.html
[Rietveld]: https://github.com/rietveld-codereview/rietveld
## Rietveld
Guido van Rossum open sourced portions of Mondrian within [Rietveld],
a similar code review tool running on Google App Engine, but for use
with Subversion rather than Perforce. Rietveld is in common use by
many open source projects, facilitating their peer reviews much as
Mondrian does for Google employees. Unlike Mondrian and the Google
Perforce triggers, Rietveld is strictly advisory and does not enforce
peer-review prior to submission.
## Gitosis and Gitolite
Git is a distributed version control system, wherein each repository
is assumed to be owned/maintained by a single user. There are no
inherent security controls built into Git, so the ability to read from
or write to a repository is controlled entirely by the host's
filesystem access controls. When multiple maintainers collaborate on
a single shared repository a high degree of trust is required, as any
collaborator with write access can alter the repository.
[Gitosis] and [Gitolite] provide tools to secure centralized Git
repositories, permitting multiple maintainers to manage the same
project at once, by restricting the access to only over a secure
network protocol, much like Perforce secures a repository by only
permitting access over its network port.
[Gitosis]: https://github.com/tv42/gitosis
[Gitolite]: http://gitolite.com/gitolite/index.html
## Android
The [Android Open Source Project][AOSP] (AOSP) was founded by Google
by the open source releasing of the Android operating system. AOSP
has selected Git as its primary version control tool. As many of the
engineers have a background of working with Mondrian at Google, there
is a strong desire to have the same (or better) feature set available
for Git and AOSP.
[AOSP]: http://source.android.com/
## The Rietveld fork
Gerrit Code Review started as a simple set of patches to Rietveld, and
was originally built to service AOSP. This quickly turned into a fork
as we added access control features that Guido van Rossum did not want
to see complicating the Rietveld code base. As the functionality and
code were starting to become drastically different, a different name
was needed. Gerrit calls back to the original namesake of Rietveld,
[Gerrit Rietveld](http://en.wikipedia.org/wiki/Gerrit_Rietveld), a
Dutch architect.
## Gerrit 2.x rewrite
Gerrit 2.x is a complete rewrite of the Gerrit fork, changing the
implementation from Python on Google App Engine, to Java on a J2EE
servlet container and a SQL database.