From 850b6edefa7a4fcc75149447cb8a984f804dd080 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 6 May 2020 13:18:29 -0700 Subject: auto-gc: extract a reusable helper from "git fetch" Back in 1991006c (fetch: convert argv_gc_auto to struct argv_array, 2014-08-16), we taught "git fetch --quiet" to pass the "--quiet" option down to "gc --auto". This issue, however, is not limited to "fetch": $ git grep -e 'gc.*--auto' \*.c finds hits in "am", "commit", "merge", and "rebase" and these commands do not pass "--quiet" down to "gc --auto" when they themselves are told to be quiet. As a preparatory step, let's introduce a helper function run_auto_gc(), that the caller can pass a boolean "quiet", and redo the fix to "git fetch" using the helper. Signed-off-by: Junio C Hamano Reviewed-by: Taylor Blau Signed-off-by: Junio C Hamano --- run-command.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'run-command.c') diff --git a/run-command.c b/run-command.c index f5e1149f9b..2771eb936f 100644 --- a/run-command.c +++ b/run-command.c @@ -1864,3 +1864,16 @@ int run_processes_parallel_tr2(int n, get_next_task_fn get_next_task, return result; } + +int run_auto_gc(int quiet) +{ + struct argv_array argv_gc_auto = ARGV_ARRAY_INIT; + int status; + + argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL); + if (quiet) + argv_array_push(&argv_gc_auto, "--quiet"); + status = run_command_v_opt(argv_gc_auto.argv, RUN_GIT_CMD); + argv_array_clear(&argv_gc_auto); + return status; +} -- cgit v1.3