builtin-push: don't pass --thin to HTTP transport
PATCH 1/1 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 <[email protected]>
--- builtin-push.c | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-)
builtin-push.c +11 -9
@@ -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 ;
Signature · 1 line
1.3.3.g423a-dirty