X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=builtin-push.c;h=66b94078229c09d8105fcd7f5800a2cba567c972;hp=e530022824c13138925152de716beb3573714f40;hb=HEAD;hpb=5edbcd8d778d81254d2c8a4229c76c6fa7880407 diff --git a/builtin-push.c b/builtin-push.c index e5300228..66b94078 100644 --- a/builtin-push.c +++ b/builtin-push.c @@ -214,7 +214,7 @@ static int do_push(const char *repo) { const char *uri[MAX_URI]; int i, n; - int remote; + int common_argc; const char **argv; int argc; @@ -231,23 +231,25 @@ static int do_push(const char *repo) argv[argc++] = "--force"; if (execute) argv[argc++] = execute; - if (thin) - argv[argc++] = "--thin"; - remote = argc; - argv[argc++] = "dummy-remote"; - while (refspec_nr--) - argv[argc++] = *refspec++; - argv[argc] = NULL; + common_argc = argc; for (i = 0; i < n; i++) { int error; + int dest_argc = common_argc; + int dest_refspec_nr = refspec_nr; + const char **dest_refspec = refspec; const char *dest = uri[i]; const char *sender = "git-send-pack"; if (!strncmp(dest, "http://", 7) || !strncmp(dest, "https://", 8)) sender = "git-http-push"; + else if (thin) + argv[dest_argc++] = "--thin"; argv[0] = sender; - argv[remote] = dest; + argv[dest_argc++] = dest; + while (dest_refspec_nr--) + argv[dest_argc++] = *dest_refspec++; + argv[dest_argc] = NULL; error = run_command_v(argc, argv); if (!error) continue;