Update git submodules

* Update plugins/replication from branch 'master'
  to f0b8c225e060c49072c5a000d5462cb46f5c5b53
  - Distributor: Skip re-fire of already pending tasks
    
    On every cycle the distributor streams all tasks under waiting/ and
    calls fireFromStorage() for each one, which allocates a fresh
    ReplicationState and consolidates it into the pending PushOne for that
    URI. PushOne deduplicates refs, since refBatchesToPush is a Set, but
    its stateMap is a ListMultimap that appends unconditionally. A task
    that stays in waiting/ across cycles therefore grows the pending
    task's notification list by one entry per ref per cycle while adding
    no work at all.
    
    The distributor already snapshots the ref updates carried by pending
    push tasks, in order to prune queue entries whose stored counterpart
    is gone. Each streamed update is removed from that snapshot, leaving
    only the prunable ones behind by the end. Reuse that removal as the
    test, i.e a non-null result means a pending task on this node is already
    holding the update, so re-firing it would append a redundant state. Skip
    it, and let only updates with no pending task reach fireFromStorage().
    Tasks written by another primary are absent from the snapshot and
    continue to be fired, so cluster distribution is unaffected.
    
    This change removes the repeat re-fires when Prune.TRUE rather than
    every possible source of stateMap growth. The startup replay passes
    Prune.FALSE and is deliberately left uncovered. It walks each waiting/
    file exactly once, so no task is fired twice into the same pending push
    and the growth is not reachable there today.
    
    Change-Id: Ib9e77f9cf99cab3d5a6f110f0578ae02eafe9198
    
  - Distributor: Add tests for firing of tasks from storage
    
    Add test coverage to ensure the distributor fires an update which no
    pending task on this node is holding, and the startup replay fires
    unconditionally, without looking at the pending push tasks.
    
    Change-Id: If7fb97cbe9e64dc21dbfb5593541ed2367dad1f5
    
1 file changed
tree: c7c991ff161b93c8d69c88d6d3f062fb4d4b6669
  1. .agents/
  2. .aspect/
  3. .gemini/
  4. .github/
  5. .settings/
  6. .ts-out/
  7. antlr3/
  8. configs/
  9. contrib/
  10. Documentation/
  11. e2e-tests/
  12. java/
  13. javatests/
  14. lib/
  15. modules/
  16. plugins/
  17. polygerrit-ui/
  18. prolog/
  19. prologtests/
  20. proto/
  21. resources/
  22. tools/
  23. webapp/
  24. .bazelignore
  25. .bazelproject
  26. .bazelrc
  27. .bazelversion
  28. .editorconfig
  29. .git-blame-ignore-revs
  30. .gitignore
  31. .gitmodules
  32. .gitreview
  33. .mailmap
  34. .nvmrc
  35. .pydevproject
  36. .zuul.yaml
  37. AGENTS.md
  38. BUILD
  39. COPYING
  40. external_deps.lock.json
  41. INSTALL
  42. Jenkinsfile
  43. MODULE.bazel
  44. MODULE.bazel.lock
  45. package.json
  46. pnpm-lock.yaml
  47. pnpm-workspace.yaml
  48. README.md
  49. SUBMITTING_PATCHES
  50. web-dev-server.config.mjs
  51. yarn.lock
README.md

Gerrit Code Review

Gerrit is a code review and project management tool for Git based projects.

Build Status Maven Central

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 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.