| @PLUGIN@ repair |
| =============== |
| |
| NAME |
| ---- |
| @PLUGIN@ repair - Repair a project on replication destinations |
| |
| SYNOPSIS |
| -------- |
| |
| ```console |
| ssh -p @SSH_PORT@ @SSH_HOST@ @PLUGIN@ repair |
| [--url <PATTERN>] |
| [--full | --copy-packs] |
| <PROJECT> |
| ``` |
| |
| DESCRIPTION |
| ----------- |
| Repairs a project on its replication destinations, then runs a |
| `@PLUGIN@ start` for that project (with `--now --wait`) so |
| any refs that diverged during the repair are replicated. The command |
| blocks until replication finishes. |
| |
| If no repair action flag is supplied, `--full` is assumed. |
| |
| REQUIREMENTS |
| ------------ |
| The Gerrit runtime user must have `ssh` on `PATH`, plus `rsync` either on |
| `PATH` or pointed at via [`replication.rsyncPath`](config.md#replication.rsyncPath). |
| |
| ACCESS |
| ------ |
| Caller must be a member of the privileged 'Administrators' group, |
| or have been granted the 'Start Replication' plugin-owned capability. |
| |
| SCRIPTING |
| --------- |
| This command is intended to be used to repair repositories on the mirror. |
| Exit status is non-zero if the project is missing, or if the repair fails |
| for some reason. |
| |
| OPTIONS |
| ------- |
| |
| `--url <PATTERN>` |
| : Restrict both the repair action(s) and the follow-up replication to |
| replication destinations whose configuration URL contains the substring |
| `PATTERN`, or whose expanded project URL contains `PATTERN`. |
| |
| `--full` |
| : Run every supported repair action. |
| |
| `--copy-packs` |
| : rsync regular files in `objects/pack/` whose names end with `.pack`, |
| `.idx`, `.bitmap`, or `.rev` to each matching destination. For each |
| remote, [remote.NAME.adminUrl](config.md#remote.NAME.adminUrl) is preferred |
| when set (same as repository creation); otherwise |
| [remote.NAME.url](config.md#remote.NAME.url) is used. Only plain SSH |
| destinations are eligible (for example `user@host:/path/to/repo.git`). |
| Destinations whose URL uses `gerrit+ssh`, HTTP(S), or a local path are |
| skipped. |
| |
| `PROJECT` |
| : Exact Gerrit project name. |
| |
| EXAMPLES |
| -------- |
| Run every supported repair action for `tools/gerrit` against every |
| eligible destination, then replicate refs (`--full` is implied since no |
| action flag is given): |
| |
| ```console |
| $ ssh -p @SSH_PORT@ @SSH_HOST@ @PLUGIN@ repair tools/gerrit |
| ``` |
| |
| Equivalent, with `--full` stated explicitly: |
| |
| ```console |
| $ ssh -p @SSH_PORT@ @SSH_HOST@ @PLUGIN@ repair --full tools/gerrit |
| ``` |
| |
| Only copy packs (no other repair actions, even if more are added later): |
| |
| ```console |
| $ ssh -p @SSH_PORT@ @SSH_HOST@ @PLUGIN@ repair --copy-packs tools/gerrit |
| ``` |
| |
| Repair only against destinations whose URL mentions `replica1`: |
| |
| ```console |
| $ ssh -p @SSH_PORT@ @SSH_HOST@ @PLUGIN@ repair --url replica1 tools/gerrit |
| ``` |
| |
| SEE ALSO |
| -------- |
| |
| * [@PLUGIN@ start](cmd-start.md) |
| * [Replication Configuration](config.md) |
| * [Access Control](../../../Documentation/access-control.html) |