# 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 updated metrics about the
project, automatically extracted from the Git commits and reviews on Gerrit.

* 16 years of activity
* 23 events in USA, UK, Germany and Sweden
* 1000+ contributors worldwide coming from 300+ organisations
<!-- stats below need to be updated -->
* 305 releases
* 204 repositories
* 166 plugins
* 60k commits
