Hello, Please find hereafter my fixed patchset to add support for systemd timers on Linux for the `git maintenance start` command. There are very few changes compared to the previous version. The main change is the fix for the use-after-free bug that Jeff pointed out. Except from that, I’ve done some minor style fixes based on the `git clang-format --diff …` recommendations. The patches are: * cache.h: Introduce a generic "xdg_config_home_for(…)" function This patch introduces a function to compute configuration files paths inside $XDG_CONFIG_HOME. This patch is unchanged compared to its previous version. * maintenance: `git maintenance run` learned `--scheduler=<scheduler>` This patch adds a new parameter to the `git maintenance run` to let the user choose a scheduler. The only changes in this patch compared to its previous version are some code alignment changes that were suggested by `git clang-format --diff …` * maintenance: add support for systemd timers on Linux This patch implements the support of systemd timers on top of crontab scheduler on Linux systems. The only change in this patch compared to its previous version is the fix of the use-after-free bug that Jeff pointed out. I’ve moved the `free(filename)` after the last usage of `filename`. I left the `free(filename)` below the `error` label as the `filename` will always be allocated at each `goto error`. Best wishes, Lénaïc. Lénaïc Huard (3): cache.h: Introduce a generic "xdg_config_home_for(…)" function maintenance: `git maintenance run` learned `--scheduler=<scheduler>` maintenance: add support for systemd timers on Linux Documentation/git-maintenance.txt | 60 ++++ builtin/gc.c | 562 ++++++++++++++++++++++++++---- cache.h | 7 + path.c | 13 +- t/t7900-maintenance.sh | 110 +++++- 5 files changed, 674 insertions(+), 78 deletions(-) -- 2.32.0