From: Junio C Hamano Date: Fri, 15 Apr 2016 01:37:14 +0000 (-0700) Subject: Merge branch 'mp/upload-pack-use-embedded-args' into maint X-Git-Tag: v2.8.2~27 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e0735442eee5af8c3f50b3e2d820fa9e4c4a1c53?hp=2bbaad82bb4dfd6e7c2f183187fa2a49bc963d7c Merge branch 'mp/upload-pack-use-embedded-args' into maint The embedded args argv-array in the child process is used to build the command line to run pack-objects instead of using a separate array of strings. * mp/upload-pack-use-embedded-args: upload-pack: use argv_array for pack_objects --- diff --git a/upload-pack.c b/upload-pack.c index b3f6653ffd..dc802a07c2 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -90,35 +90,32 @@ static void create_pack_file(void) "corruption on the remote side."; int buffered = -1; ssize_t sz; - const char *argv[13]; - int i, arg = 0; + int i; FILE *pipe_fd; if (shallow_nr) { - argv[arg++] = "--shallow-file"; - argv[arg++] = ""; + argv_array_push(&pack_objects.args, "--shallow-file"); + argv_array_push(&pack_objects.args, ""); } - argv[arg++] = "pack-objects"; - argv[arg++] = "--revs"; + argv_array_push(&pack_objects.args, "pack-objects"); + argv_array_push(&pack_objects.args, "--revs"); if (use_thin_pack) - argv[arg++] = "--thin"; + argv_array_push(&pack_objects.args, "--thin"); - argv[arg++] = "--stdout"; + argv_array_push(&pack_objects.args, "--stdout"); if (shallow_nr) - argv[arg++] = "--shallow"; + argv_array_push(&pack_objects.args, "--shallow"); if (!no_progress) - argv[arg++] = "--progress"; + argv_array_push(&pack_objects.args, "--progress"); if (use_ofs_delta) - argv[arg++] = "--delta-base-offset"; + argv_array_push(&pack_objects.args, "--delta-base-offset"); if (use_include_tag) - argv[arg++] = "--include-tag"; - argv[arg++] = NULL; + argv_array_push(&pack_objects.args, "--include-tag"); pack_objects.in = -1; pack_objects.out = -1; pack_objects.err = -1; pack_objects.git_cmd = 1; - pack_objects.argv = argv; if (start_command(&pack_objects)) die("git upload-pack: unable to fork git-pack-objects");