Update git submodules

* Update plugins/replication from branch 'master'
  to 5c3414d99c36c293e2119191ae9bd0aca5b46380
  - ProjectRepairer: Add a --copy-loose-objects repair action
    
    Add a COPY_LOOSE_OBJECTS action, exposed as '--copy-loose-objects',
    rsyncing the two hex character fanout directories under objects/. The
    include patterns keep rsync out of pack/, info/ and their siblings.
    
    The action is declared ahead of COPY_PACKS, so when both are selected
    loose objects are copied first. '--full' now covers both.
    
    Change-Id: I9c3d12182bdc5fa9da662269d8681db174057f21
    
  - ProjectRepairer: Refactor to select actions through an enum
    
    repair() takes a 'copyPacks' boolean, which can only describe the one
    thing it knows how to do. A second kind of repair would mean a second
    boolean at every call site, with the order the two run in implicit in
    how repair() tests them.
    
    Take a collection of Action values instead. Individual flags are kept in
    flag order. '--full' and the no-flag default use Action.all() so actions
    run in enum declaration order. Action has only COPY_PACKS, so behaviour
    is unchanged.
    
    Change-Id: Ie7c0d9af40cab893a01a754bc984b8593ff6a5bc
    
  - ProjectRepairer: Refactor to extract the repository lookup
    
    copyPackTo() validates the destination URI and opens the repository to
    locate it on disk before copying anything, neither of which has to do
    with packs.
    
    Move both into objectsDir(), which reports the repository's objects
    directory, or nothing if the project cannot be repaired at that
    destination. What is left is copyPacksTo(), taking the directory to
    copy from. The now trivial copyInOrder() folds into it.
    
    Change-Id: I2d1ba0a23671d6db115f18a35420f4c04a24c0ec
    
  - ProjectRepairer: Refactor copy() to take a destination dir
    
    buildCopyDestination() appends objects/pack/ to the remote path
    itself, so copy() can only ever populate a destination's pack
    directory.
    
    Pass the remote subdirectory in instead, with the pack callers naming
    PACK_DIR. The rsync commands produced are unchanged.
    
    Change-Id: I7bf05966dd95b7827864f2ae5a0a39fe9ca050eb
    
  - ProjectRepairer: Report an interrupted copy as InterruptedIOException
    
    copy() declares InterruptedException, but the only one that escapes
    comes from the halt() call in its own catch block, leaving copyInOrder()
    to catch an interrupt it takes no part in. The interrupt copy() does
    take part in becomes a -1 exit code, and as throwing
    InterruptedException clears the interrupt status, nothing above can tell
    an interrupted transfer from a failed one, or that the repair was
    cancelled at all.
    
    Absorb the halt() interrupt where it happens, and report the copy's own
    interrupt as InterruptedIOException, which is what java.io raises when
    an interrupt terminates a transfer. It unwinds the repair, so the copies
    and destinations left after a cancel are skipped instead of running to
    completion.
    
    The SSH command lets it escape, which BaseCommand already treats as the
    client having dropped off, exiting 127 without logging. Auto-repair logs
    the interrupt and skips its follow-up replication.
    
    Change-Id: Ie61e0329aaa3131c8ac1f8b4932e57e48c5e5e0b
    
1 file changed
tree: 972e3884b43eb9aaa48d45c47836e77da5cd3d10
  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.