When calling send-pack from git-push, use the --remote option when
appropriate.
Signed-off-by: Daniel Barkalow <redacted>
---
builtin-push.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c
index 2e944cd..d4734be 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -158,7 +158,7 @@ static int do_push(const char *repo)
refspec = remote->push_refspec;
}
- argv = xmalloc((refspec_nr + 10) * sizeof(char *));
+ argv = xmalloc((refspec_nr + 11) * sizeof(char *));
argv[0] = "dummy-send-pack";
argc = 1;
if (all)
@@ -180,8 +180,13 @@ static int do_push(const char *repo)
if (!prefixcmp(dest, "http://") ||
!prefixcmp(dest, "https://"))
sender = "http-push";
- else if (thin)
- argv[dest_argc++] = "--thin";
+ else {
+ char *rem = xmalloc(strlen(remote->name) + 10);
+ sprintf(rem, "--remote=%s", remote->name);
+ argv[dest_argc++] = rem;
+ if (thin)
+ argv[dest_argc++] = "--thin";
+ }
argv[0] = sender;
argv[dest_argc++] = dest;
while (dest_refspec_nr--)--
1.5.1.2.255.g6ead4-dirty