From efd8f793e472069459c30e5d21bb2d203436c72a Mon Sep 17 00:00:00 2001 From: Daniel Barkalow Date: Fri, 15 Jun 2007 10:22:37 -0400 Subject: 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 --- remote.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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); -- cgit v1.2.1