diff options
author | Nick Hengeveld <nickh@reactrix.com> | 2006-06-06 00:02:29 +0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-06 04:39:44 +0400 |
commit | 441c823e892ba7408e87d26b6e77def5975c1c60 (patch) | |
tree | f99e963b45deb2a5cd0193a079eda7c077b1338b | |
parent | ce0bd64299ae148ef61a63edcac635de41254cb5 (diff) |
builtin-push: don't pass --thin to HTTP transport
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>
-rw-r--r-- | builtin-push.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/builtin-push.c b/builtin-push.c index e530022824..66b9407822 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; |