From: vk Date: Thu, 28 Mar 2024 04:12:06 GMT Subject: Re: [GSoC] [PATCH] builtin/gc: Replace run_command with C function refs_pack_refs Message-ID: <0a149be978e68271c251e80f8eb571f4@vkabc.me> In-Reply-To: <20240328040010.40230-1-g@vkabc.me> On 2024-03-28 12:00, vk wrote: > Replace "git pack-refs" with C function refs_pack_refs > for maintenance_task_pack_refs(). C function refs_pack_refs > can be called directly, hence saving an external process. > --- > builtin/gc.c | 29 +++++++++++++++++++++++------ > 1 file changed, 23 insertions(+), 6 deletions(-) > > diff --git a/builtin/gc.c b/builtin/gc.c > index 3c874b248b..b55c5f5225 100644 > --- a/builtin/gc.c > +++ b/builtin/gc.c > @@ -42,6 +42,8 @@ > #include "setup.h" > #include "trace2.h" > > +#include > + > #define FAILED_RUN "failed to run %s" > > static const char * const builtin_gc_usage[] = { > @@ -218,14 +220,29 @@ static int pack_refs_condition(void) > > static int maintenance_task_pack_refs(MAYBE_UNUSED struct > maintenance_run_opts *opts) > { > - struct child_process cmd = CHILD_PROCESS_INIT; > > - cmd.git_cmd = 1; > - strvec_pushl(&cmd.args, "pack-refs", "--all", "--prune", NULL); > - if (opts->auto_flag) > - strvec_push(&cmd.args, "--auto"); I forgot to add this --auto optional logic. Will add it in the following patch. Thanks