* Update plugins/replication from branch 'master' to 4590b53e5ef3726ed12b8a3054ae5d4d8363f90d - Merge "Merge branch 'stable-3.1'" - Merge branch 'stable-3.1' * stable-3.1: ReplicationQueue: Check nulls in firePendingEvents Log stack trace when an error occur while deleting event Append LF to the json string of persisted replication event Change default for the replicateOnStartup to false Don't lose ref-updated events on plugin restart Change-Id: Ife23d8746ca1af5060c4d77f8974b707fec4625a - Merge branch 'stable-3.0' into stable-3.1 * stable-3.0: ReplicationQueue: Check nulls in firePendingEvents Log stack trace when an error occur while deleting event Append LF to the json string of persisted replication event Change default for the replicateOnStartup to false Don't lose ref-updated events on plugin restart Change-Id: I505f3769fe89720533e93c197ffe791eda82e848 - Merge branch 'stable-2.16' into stable-3.0 * stable-2.16: ReplicationQueue: Check nulls in firePendingEvents Log stack trace when an error occur while deleting event Append LF to the json string of persisted replication event Change default for the replicateOnStartup to false Don't lose ref-updated events on plugin restart Change-Id: Ic1f42587fce15cfce546c7a3946c0e2d8e75922d - Merge branch 'stable-2.15' into stable-2.16 * stable-2.15: ReplicationQueue: Check nulls in firePendingEvents Log stack trace when an error occur while deleting event Append LF to the json string of persisted replication event Change default for the replicateOnStartup to false Don't lose ref-updated events on plugin restart Change-Id: Icc855dd26ee9f8fb195435d8902404b364242940 - ReplicationQueue: Check nulls in firePendingEvents After a sudden reboot (for unknown reason) Gerrit at startup couldn't load because of NullPointerException. There is a possibility that stored event was null at that point. Extra logging added to handle null events. Change-Id: I72f34d8def6e0246196cd865f33f6e795b21664b - Log stack trace when an error occur while deleting event This will help figuring out root cause of failure to delete event file. Change-Id: I2f9774c3daf19a04f6b04414ba8145c99bb6e0fe (cherry picked from commit b62f006b1350180de0af02c82fb18fb290a2548f) - Append LF to the json string of persisted replication event Change-Id: I83ed3f37071125018bf23f6dcd137ef819ef3559 (cherry picked from commit 5e91925cfd391898e8e33fd149b9e1a115dafee4) - Change default for the replicateOnStartup to false Now that replication events are persistent and non-finished replications rescheduled after plugin restart the replicateOnStartup feature becomes less important. We can change the default value for this option to false. Change-Id: I237d8d8514e01b8786b7db9f39bead4eb475a0a4 (cherry picked from commit 807790f7d4058235a19b2a766e84628168b64ae6) - Don't lose ref-updated events on plugin restart When a ref-updated event is received, persist the event in the directory defined by the replication.eventsDirectory. When the updated ref is replicated deleted the persisted event. If replication queue is non-empty and plugin gets stopped, ref updates will not be replicated and, therefore, the persisted events will not get deleted. When the plugin starts it will schedule replication for all persisted events and delete them. This change provides two benefits: * no ref-updated events are lost on plugin restart * eliminate need for the replicateOnStartup=true setting which schedules replication of all refs for all projects and typically creates a humongous replication queue on every plugin restart. Change-Id: Ieacd084fabe703333241ffda11c8b6c78cced37a (cherry picked from commit bdaea910694dd5a3474dbc051b298aaee9d77950)
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 Developer Mailing list is repo-discuss on Google Groups.
License
Gerrit is provided under the Apache License 2.0.
Build
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit
cd gerrit && bazel 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>]
On Fedora run:
dnf clean all && dnf install gerrit-<version>[-<release>]
Use pre-built Gerrit images on Docker
Docker images of Gerrit are available on DockerHub
To run a CentOS 7 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-centos7[:version]
To run a Ubuntu 15.04 based Gerrit image:
docker run -p 8080:8080 gerritforge/gerrit-ubuntu15.04[:version]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.