As reported by Perrick [1], commit does not propagate quiet behavior to gc if present. While we are at it, convert argv_gc_auto to struct argv_array. [1]: https://lore.kernel.org/git/20200506094327.GC31637@rillettes/ Reported-by: Pierrick Gaudry <pierrick.gaudry@xxxxxxxx> Signed-off-by: Abhishek Kumar <abhishekkumar8222@xxxxxxxxx> --- builtin/commit.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/builtin/commit.c b/builtin/commit.c index a73de0a4c5..a48e312ebd 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1494,7 +1494,7 @@ static int git_commit_config(const char *k, const char *v, void *cb) int cmd_commit(int argc, const char **argv, const char *prefix) { - const char *argv_gc_auto[] = {"gc", "--auto", NULL}; + struct argv_array argv_gc_auto = ARGV_ARRAY_INIT; static struct wt_status s; static struct option builtin_commit_options[] = { OPT__QUIET(&quiet, N_("suppress summary after successful commit")), @@ -1703,7 +1703,11 @@ int cmd_commit(int argc, const char **argv, const char *prefix) git_test_write_commit_graph_or_die(); repo_rerere(the_repository, 0); - run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); + argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL); + if (quiet) + argv_array_push(&argv_gc_auto, "--quiet"); + run_command_v_opt(argv_gc_auto.argv, RUN_GIT_CMD); + argv_array_clear(&argv_gc_auto); run_commit_hook(use_editor, get_index_file(), "post-commit", NULL); if (amend && !no_post_rewrite) { commit_post_rewrite(the_repository, current_head, &oid); -- 2.26.0