# What is Gerrit Code Review?

Gerrit provides web based code review and repository management
for the Git version control system.

If you are new to Gerrit, you may read a [Quick Introduction](https://gerrit-review.googlesource.com/Documentation/intro-quick.html)
directly from the Google-hosted documentation Gerrit web-site:

> Gerrit is intended to provide a lightweight framework for reviewing
> every commit before it is accepted into the code base. Changes are
> uploaded to Gerrit but don’t actually become a part of the project
> until they’ve been reviewed and accepted.

# What is Gerrit User Summit?

Gerrit User Summit is THE event for everything related
to the Gerrit Code Review Community.

The Gerrit User Summit is the place where all of major Gerrit users
annually meet and exchange experiences and practices that foster the
community with new and useful ideas.

## Gerrit Community in Numbers

Thanks to the [Gerrit Analytics platform](https://analytics.gerrithub.io)
contributed by GerritForge to the project, we have from this year some real numbers about the
project, automatically extracted from the Git commits and reviews on Gerrit.

* 11 years of activity
* 17 events in USA, UK and Germany
* 650+ contributors worldwide coming from 170+ organisations
* 183 releases
* 180 repositories
* 140 plugins
* 41k commits
