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 <barkalow@iabervon.org> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
38570a47fc
commit
efd8f793e4
5
remote.c
5
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);
|
||||
|
Loading…
Reference in New Issue
Block a user