diff options
| author | Patrick Steinhardt <ps@pks.im> | 2025-10-24 08:57:18 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-10-24 13:42:43 -0700 |
| commit | d465be2327d934f3506d412cc4f4067baba0d1c5 (patch) | |
| tree | a60816a2521d9b75cd3652d49857113a058633e8 /builtin/gc.c | |
| parent | 5c2ad50193896dc74e51e4b7a5af4ea734746316 (diff) | |
| download | git-d465be2327d934f3506d412cc4f4067baba0d1c5.tar.gz | |
builtin/maintenance: don't silently ignore invalid strategy
When parsing maintenance strategies we completely ignore the
user-configured value in case it is unknown to us. This makes it
basically undiscoverable to the user that scheduled maintenance is
devolving into a no-op.
Change this to instead die when seeing an unknown maintenance strategy.
While at it, pull out the parsing logic into a separate function so that
we can reuse it in a subsequent commit.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Acked-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/gc.c')
| -rw-r--r-- | builtin/gc.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/builtin/gc.c b/builtin/gc.c index fb1a82e030..726d944d3b 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -1855,6 +1855,13 @@ static const struct maintenance_strategy incremental_strategy = { }, }; +static struct maintenance_strategy parse_maintenance_strategy(const char *name) +{ + if (!strcasecmp(name, "incremental")) + return incremental_strategy; + die(_("unknown maintenance strategy: '%s'"), name); +} + static void initialize_task_config(struct maintenance_run_opts *opts, const struct string_list *selected_tasks) { @@ -1890,12 +1897,10 @@ static void initialize_task_config(struct maintenance_run_opts *opts, * override specific aspects of our strategy. */ if (opts->schedule) { - strategy = none_strategy; - - if (!repo_config_get_string_tmp(the_repository, "maintenance.strategy", &config_str)) { - if (!strcasecmp(config_str, "incremental")) - strategy = incremental_strategy; - } + if (!repo_config_get_string_tmp(the_repository, "maintenance.strategy", &config_str)) + strategy = parse_maintenance_strategy(config_str); + else + strategy = none_strategy; } else { strategy = default_strategy; } |
