builtin-push: don't pass --thin to HTTP transport
authorNick Hengeveld <nickh@reactrix.com>
Mon, 5 Jun 2006 20:02:29 +0000 (13:02 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 6 Jun 2006 00:39:44 +0000 (17:39 -0700)
git-http-push does not currently use packs to transfer objects.

Signed-off-by: Nick Hengeveld <nickh@reactrix.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-push.c

index e530022..66b9407 100644 (file)
@@ -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;