blob: 15b05ae53b2ad5208e32d9378746c90b21dd1a7a [file] [log] [blame]
#summary The history behind Gerrit Code Review
Google developed [http://video.google.com/videoplay?docid=-8502904076440714866 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 [http://www.perforce.com/ Perforce] and to many Google-only services, such as [http://labs.google.com/papers/bigtable.html Bigtable]. Google employees have often described how useful Mondrian and its peer-review process is to their day-to-day work.
Guido van Rossum open sourced portions of Mondrian within [http://code.google.com/p/rietveld/ 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.
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.
[http://eagain.net/gitweb/?p=gitosis.git;a=blob;f=README.rst;hb=HEAD Gitosis] provides 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.
The [http://source.android.com/ Android Open Source Project] (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.
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, [http://en.wikipedia.org/wiki/Gerrit_Rietveld Gerrit Rietveld], a Dutch architect.
Gerrit2 is a complete rewrite of the Gerrit fork, completely changing the implementation from Python on Google App Engine, to Java on a J2EE servlet container and a SQL database.