This collects the schema definitions (superseding the static ChangeSchemas utilities) into a class called SchemaDefinitions. Additionally, the backend-specific implementation classes (index collection, site indexer, etc.) are collected into a class called IndexDefinition. (We use the longer "definition" rather than "type" because the latter is already used to describe the backend implementation.) The total set of supported index definitions is bound in IndexModule, which provides them as a Collection<IndexDefinition<?, ?, ?>>. Alternatively, callers that can't get the injected implementations (notably InitIndex) can access the fully-static list of schema definitions. Abstract out LuceneChangeIndex.Factory into a generic IndexFactory interface. At this point the only things that a particular backend implementation needs to implement are: - The IndexFactory that constructs a per-implementation index implementation given a schema definition. Eventually this will expand to one IndexFactory implementation per index definition. - A listener that populates the IndexCollection for each supported index definition. This change uses the Collection<IndexDefinition> in most places where it is possible, with a few exceptions that will require a bit more work: - LuceneVersionManager, which is used directly by some SSH commands to manipulate the index. - Reindex, which needs a different scheme for passing flags. Change-Id: Ia5724cfecaae6335e7c0df24cd41c87b2bb5e36a
Gerrit Code Review
Gerrit is a code review and project management tool for Git based projects.
Objective
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
Documentation
For information about how to install and use Gerrit, refer to the documentation.
Source
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Reporting bugs
Please report bugs on the issue tracker.
Contribute
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
Getting in contact
The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.
The Developer Mailing list is repo-discuss on Google Groups.
License
Gerrit is provided under the Apache License 2.0.
Build
Install Buck and run the following:
git clone --recursive https://gerrit.googlesource.com/gerrit
cd gerrit && buck build release
Install binary packages (Deb/Rpm)
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.
Events
- March 14-18 2016: Gerrit Hackathon, Berlin (free seats are still available).