send-pack: use internal argv_array of struct child_process
Avoid a magic number of NULL placeholder values and a magic index by constructing the command line for pack-objects using the embedded argv_array of the child_process. The resulting code is shorter and easier to extend. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c7191fa510
commit
a923e05944
28
send-pack.c
28
send-pack.c
@ -58,35 +58,25 @@ static int pack_objects(int fd, struct ref *refs, struct oid_array *extra, struc
|
|||||||
* the revision parameters to it via its stdin and
|
* the revision parameters to it via its stdin and
|
||||||
* let its stdout go back to the other end.
|
* let its stdout go back to the other end.
|
||||||
*/
|
*/
|
||||||
const char *argv[] = {
|
|
||||||
"pack-objects",
|
|
||||||
"--all-progress-implied",
|
|
||||||
"--revs",
|
|
||||||
"--stdout",
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
};
|
|
||||||
struct child_process po = CHILD_PROCESS_INIT;
|
struct child_process po = CHILD_PROCESS_INIT;
|
||||||
FILE *po_in;
|
FILE *po_in;
|
||||||
int i;
|
int i;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
i = 4;
|
argv_array_push(&po.args, "pack-objects");
|
||||||
|
argv_array_push(&po.args, "--all-progress-implied");
|
||||||
|
argv_array_push(&po.args, "--revs");
|
||||||
|
argv_array_push(&po.args, "--stdout");
|
||||||
if (args->use_thin_pack)
|
if (args->use_thin_pack)
|
||||||
argv[i++] = "--thin";
|
argv_array_push(&po.args, "--thin");
|
||||||
if (args->use_ofs_delta)
|
if (args->use_ofs_delta)
|
||||||
argv[i++] = "--delta-base-offset";
|
argv_array_push(&po.args, "--delta-base-offset");
|
||||||
if (args->quiet || !args->progress)
|
if (args->quiet || !args->progress)
|
||||||
argv[i++] = "-q";
|
argv_array_push(&po.args, "-q");
|
||||||
if (args->progress)
|
if (args->progress)
|
||||||
argv[i++] = "--progress";
|
argv_array_push(&po.args, "--progress");
|
||||||
if (is_repository_shallow())
|
if (is_repository_shallow())
|
||||||
argv[i++] = "--shallow";
|
argv_array_push(&po.args, "--shallow");
|
||||||
po.argv = argv;
|
|
||||||
po.in = -1;
|
po.in = -1;
|
||||||
po.out = args->stateless_rpc ? -1 : fd;
|
po.out = args->stateless_rpc ? -1 : fd;
|
||||||
po.git_cmd = 1;
|
po.git_cmd = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user