| maintenance.auto:: | |
| This boolean config option controls whether some commands run | |
| `git maintenance run --auto` after doing their normal work. Defaults | |
| to true. | |
| maintenance.autoDetach:: | |
| Many Git commands trigger automatic maintenance after they have | |
| written data into the repository. This boolean config option | |
| controls whether this automatic maintenance shall happen in the | |
| foreground or whether the maintenance process shall detach and | |
| continue to run in the background. | |
| + | |
| If unset, the value of `gc.autoDetach` is used as a fallback. Defaults | |
| to true if both are unset, meaning that the maintenance process will | |
| detach. | |
| maintenance.strategy:: | |
| This string config option provides a way to specify one of a few | |
| recommended strategies for repository maintenance. This affects | |
| which tasks are run during `git maintenance run`, provided no | |
| `--task=<task>` arguments are provided. This setting impacts manual | |
| maintenance, auto-maintenance as well as scheduled maintenance. The | |
| tasks that run may be different depending on the maintenance type. | |
| + | |
| The maintenance strategy can be further tweaked by setting | |
| `maintenance.<task>.enabled` and `maintenance.<task>.schedule`. If set, these | |
| values are used instead of the defaults provided by `maintenance.strategy`. | |
| + | |
| The possible strategies are: | |
| + | |
| * `none`: This strategy implies no tasks are run at all. This is the default | |
| strategy for scheduled maintenance. | |
| * `gc`: This strategy runs the `gc` task. | |
| * `geometric`: This strategy performs geometric repacking of packfiles and | |
| keeps auxiliary data structures up-to-date. The strategy expires data in the | |
| reflog and removes worktrees that cannot be located anymore. When the | |
| geometric repacking strategy would decide to do an all-into-one repack, then | |
| the strategy generates a cruft pack for all unreachable objects. Objects that | |
| are already part of a cruft pack will be expired. | |
| + | |
| This repacking strategy is a full replacement for the `gc` strategy and is | |
| recommended for large repositories. This is the default strategy for manual | |
| maintenance. | |
| + | |
| * `incremental`: This setting optimizes for performing small maintenance | |
| activities that do not delete any data. This does not schedule the `gc` | |
| task, but runs the `prefetch` and `commit-graph` tasks hourly, the | |
| `loose-objects` and `incremental-repack` tasks daily, and the `pack-refs` | |
| task weekly. Manual repository maintenance uses the `gc` task. | |
| maintenance.<task>.enabled:: | |
| This boolean config option controls whether the maintenance task | |
| with name `<task>` is run when no `--task` option is specified to | |
| `git maintenance run`. These config values are ignored if a | |
| `--task` option exists. By default, only `maintenance.gc.enabled` | |
| is true. | |
| maintenance.<task>.schedule:: | |
| This config option controls whether or not the given `<task>` runs | |
| during a `git maintenance run --schedule=<frequency>` command. The | |
| value must be one of "hourly", "daily", or "weekly". | |
| maintenance.commit-graph.auto:: | |
| This integer config option controls how often the `commit-graph` task | |
| should be run as part of `git maintenance run --auto`. If zero, then | |
| the `commit-graph` task will not run with the `--auto` option. A | |
| negative value will force the task to run every time. Otherwise, a | |
| positive value implies the command should run when the number of | |
| reachable commits that are not in the commit-graph file is at least | |
| the value of `maintenance.commit-graph.auto`. The default value is | |
| 100. | |
| maintenance.loose-objects.auto:: | |
| This integer config option controls how often the `loose-objects` task | |
| should be run as part of `git maintenance run --auto`. If zero, then | |
| the `loose-objects` task will not run with the `--auto` option. A | |
| negative value will force the task to run every time. Otherwise, a | |
| positive value implies the command should run when the number of | |
| loose objects is at least the value of `maintenance.loose-objects.auto`. | |
| The default value is 100. | |
| maintenance.loose-objects.batchSize:: | |
| This integer config option controls the maximum number of loose objects | |
| written into a packfile during the `loose-objects` task. The default is | |
| fifty thousand. Use value `0` to indicate no limit. | |
| maintenance.incremental-repack.auto:: | |
| This integer config option controls how often the `incremental-repack` | |
| task should be run as part of `git maintenance run --auto`. If zero, | |
| then the `incremental-repack` task will not run with the `--auto` | |
| option. A negative value will force the task to run every time. | |
| Otherwise, a positive value implies the command should run when the | |
| number of pack-files not in the multi-pack-index is at least the value | |
| of `maintenance.incremental-repack.auto`. The default value is 10. | |
| maintenance.geometric-repack.auto:: | |
| This integer config option controls how often the `geometric-repack` | |
| task should be run as part of `git maintenance run --auto`. If zero, | |
| then the `geometric-repack` task will not run with the `--auto` | |
| option. A negative value will force the task to run every time. | |
| Otherwise, a positive value implies the command should run either when | |
| there are packfiles that need to be merged together to retain the | |
| geometric progression, or when there are at least this many loose | |
| objects that would be written into a new packfile. The default value is | |
| 6700. | |
| maintenance.geometric-repack.splitFactor:: | |
| This integer config option controls the factor used for the geometric | |
| sequence. See the `--geometric=` option in linkgit:git-repack[1] for | |
| more details. Defaults to `2`. | |
| maintenance.reflog-expire.auto:: | |
| This integer config option controls how often the `reflog-expire` task | |
| should be run as part of `git maintenance run --auto`. If zero, then | |
| the `reflog-expire` task will not run with the `--auto` option. A | |
| negative value will force the task to run every time. Otherwise, a | |
| positive value implies the command should run when the number of | |
| expired reflog entries in the "HEAD" reflog is at least the value of | |
| `maintenance.loose-objects.auto`. The default value is 100. | |
| maintenance.rerere-gc.auto:: | |
| This integer config option controls how often the `rerere-gc` task | |
| should be run as part of `git maintenance run --auto`. If zero, then | |
| the `rerere-gc` task will not run with the `--auto` option. A negative | |
| value will force the task to run every time. Otherwise, a positive | |
| value implies the command should run when the estimated number of stale | |
| entries that would be pruned is greater than or equal to the configured | |
| value. The default value is 512. | |
| maintenance.worktree-prune.auto:: | |
| This integer config option controls how often the `worktree-prune` task | |
| should be run as part of `git maintenance run --auto`. If zero, then | |
| the `worktree-prune` task will not run with the `--auto` option. A | |
| negative value will force the task to run every time. Otherwise, a | |
| positive value implies the command should run when the number of | |
| prunable worktrees exceeds the value. The default value is 1. |