]> git.ipfire.org Git - thirdparty/git.git/commit - Documentation/git-maintenance.txt
maintenance: `git maintenance run` learned `--scheduler=<scheduler>`
authorLénaïc Huard <lenaic@lhuard.fr>
Sat, 4 Sep 2021 20:54:59 +0000 (22:54 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Sep 2021 17:57:04 +0000 (10:57 -0700)
commiteba1ba9d32f14dd9c052b1e2eb50e5718421d10e
tree58009f6bb6eea1eed7da970c8d83ab4be4df9fdc
parentcb7db5bbd56f587a35c1861282c46d424fee0b38
maintenance: `git maintenance run` learned `--scheduler=<scheduler>`

Depending on the system, different schedulers can be used to schedule
the hourly, daily and weekly executions of `git maintenance run`:
* `launchctl` for MacOS,
* `schtasks` for Windows and
* `crontab` for everything else.

`git maintenance run` now has an option to let the end-user explicitly
choose which scheduler he wants to use:
`--scheduler=auto|crontab|launchctl|schtasks`.

When `git maintenance start --scheduler=XXX` is run, it not only
registers `git maintenance run` tasks in the scheduler XXX, it also
removes the `git maintenance run` tasks from all the other schedulers to
ensure we cannot have two schedulers launching concurrent identical
tasks.

The default value is `auto` which chooses a suitable scheduler for the
system.

`git maintenance stop` doesn't have any `--scheduler` parameter because
this command will try to remove the `git maintenance run` tasks from all
the available schedulers.

Signed-off-by: Lénaïc Huard <lenaic@lhuard.fr>
Acked-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-maintenance.txt
builtin/gc.c
t/t7900-maintenance.sh