From: Daniel Barkalow Date: Fri, 15 Jun 2007 14:22:37 +0000 (-0400) Subject: Fix pushing to a pattern with no dst X-Git-Tag: v1.5.3-rc0~94 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=efd8f793e472069459c30e5d21bb2d203436c72a;p=git.git Fix pushing to a pattern with no dst Refspecs with no colons are left with no dst value, because they are interepreted differently for fetch and push. For push, they mean to reuse the src side. Fix this for patterns. Signed-off-by: Daniel Barkalow Acked-by: Linus Torvalds Signed-off-by: Junio C Hamano --- diff --git a/remote.c b/remote.c index ed62a62fa..54c9401a6 100644 --- a/remote.c +++ b/remote.c @@ -536,10 +536,11 @@ int match_refs(struct ref *src, struct ref *dst, struct ref ***dst_tail, } if (pat) { - dst_name = xmalloc(strlen(pat->dst) + + const char *dst_side = pat->dst ? pat->dst : pat->src; + dst_name = xmalloc(strlen(dst_side) + strlen(src->name) - strlen(pat->src) + 2); - strcpy(dst_name, pat->dst); + strcpy(dst_name, dst_side); strcat(dst_name, src->name + strlen(pat->src)); } else dst_name = xstrdup(src->name);