This is based on ds/maintenance-part-3. After sitting with the background maintenance as it has been cooking, I wanted to come back around and implement the background maintenance for Windows. However, I noticed that there were some things bothering me with background maintenance on my macOS machine. These are detailed in PATCH 2, but the tl;dr is that 'cron' is not recommended by Apple and instead 'launchd' satisfies our needs. This series implements the background scheduling so git maintenance (start|stop) works on those platforms. I've been operating with these schedules for a while now without the problems described in the patches. There is a particularly annoying case about console windows popping up on Windows, but PATCH 3 describes a plan to get around that. Thanks, -Stolee Derrick Stolee (3): maintenance: extract platform-specific scheduling maintenance: use launchctl on macOS maintenance: use Windows scheduled tasks builtin/gc.c | 428 +++++++++++++++++++++++++++++++++++++++-- t/t7900-maintenance.sh | 86 ++++++++- t/test-lib.sh | 4 + 3 files changed, 498 insertions(+), 20 deletions(-) base-commit: 0016b618182f642771dc589cf0090289f9fe1b4f Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-776%2Fderrickstolee%2Fmaintenance%2FmacOS-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-776/derrickstolee/maintenance/macOS-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/776 -- gitgitgadget