# [PATCH 5/5] Call send-pack with --remote option

2 messages from 2007-04-28 to 2007-04-29. Participants: Daniel Barkalow, Junio C Hamano.
Thread: https://gitlist.dev/t/7886

## Daniel Barkalow, 2007-04-28 17:05

Subject: [PATCH 5/5] Call send-pack with --remote option
Message-ID: <Pine.LNX.4.64.0704281304430.28708@iabervon.org>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0704281304430.28708%40iabervon.org

```
When calling send-pack from git-push, use the --remote option when
appropriate.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
---
 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

```

## Junio C Hamano, 2007-04-29 05:51

Subject: Re: [PATCH 5/5] Call send-pack with --remote option
Message-ID: <7vps5ng22u.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vps5ng22u.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.64.0704281304430.28708@iabervon.org>

```
Daniel Barkalow <barkalow@iabervon.org> writes:

> 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)

I somehow thought this 10 was there not because we counted but
we know 10 gives us enough slop.  Adding one because we give an
extra parameter, while it is logically correct, feels somewhat
funny.  But I do not have a better suggestion (unless we count
exactly which we cannot do).

```
