commit | 42f0548d8cc394091a6bfc7f5a9bda91b54c92a9 | [log] [tgz] |
---|---|---|
author | Luca Milanesio <luca.milanesio@gmail.com> | Tue Jul 09 21:13:33 2024 +0100 |
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | Tue Jul 09 20:13:33 2024 +0000 |
tree | c566ddc5dcb291e2fa3168e81f5cb1a2405cc943 | |
parent | d89151e2cdfb33a836150d0f40a21a66378d08c5 [diff] |
Update git submodules * Update plugins/replication from branch 'master' to eac5d4e844c6103b37e8d35ee1ef3eb5ddf117ea - Delay the fetching of credentials until push time The replication plugin can be configured to reload dynamically the credentials when changed on the filesystem or in the SecureStore backend. The overall reloading mechanism worked as long as a new PushOne object was created per replication task; however, when a push was failing because of credentials issues, the PushOne object was requeued without being recreated, causing a chicken & egg situation Until the PushOne was retried, the old credentials were stored in the instance and therefore any retry would have failed. Even though the replication.config was configured for reloading dynamically the credentials, any task stuck in retry would have not been able to pass the correct credentials. Delay the creation of the credentials provider until push time, so that even in case of retrying replication tasks the credentials can be dynamically reloaded when changed on the filesystem. Change-Id: I2f069a8433651a0db2681b6675f392ff894f27fc - Improve FanoutConfigurationResource loading performance When using replication remotes as individual files under $GERRIT_SITE/etc/replication the time requested to load the remotes, parsing them and merging them together can be very significant, especially when having a lot of remote configurations. On GerritHub.io with 12k remotes configured, the time to load, parse and merge them in a unique FileBasedConfig object reaches several minutes. The main issue found during profiling is the manual merging of Config through one call per setting using Config.setStringList() rather than merging them first and then parsing them as a whole. Refactor the overall parsing logic by splitting the process in three parts: - load of all replication remotes a list of String - expanding them as individual strings and adding the remote names - merging them together with the base config using the JGit's default mechanism From an external perspective, the API work exactly as before, including the config validation process; from a performance perspective, the loading of 12k remotes is reduced by 20x times, taking under 1 minute. Change-Id: I2880428b881034e6253d07ab0ba368c0a97eecc0
Gerrit is a code review and project management tool for Git based projects.
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.
For information about how to install and use Gerrit, refer to the documentation.
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Please report bugs on the issue tracker.
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.
The Developer Mailing list is repo-discuss on Google Groups.
Gerrit is provided under the Apache License 2.0.
Install Bazel and run the following:
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit cd gerrit && bazel build release
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>]
Docker images of Gerrit are available on DockerHub
To run a CentOS 8 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-centos8
To run a Ubuntu 20.04 based Gerrit image:
docker run -p 8080:8080 gerritcodereview/gerrit[:version]-ubuntu20
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.