diff options
author | Daniel Barkalow <barkalow@iabervon.org> | 2007-06-15 10:22:37 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-16 01:20:26 -0700 |
commit | efd8f793e472069459c30e5d21bb2d203436c72a (patch) | |
tree | e6c60b11875f3d72370d5f2faf73d19dc2491e2e /remote.c | |
parent | 38570a47fcd9d7631c03673249f587697fa85677 (diff) | |
download | git-efd8f793e472069459c30e5d21bb2d203436c72a.tar.gz git-efd8f793e472069459c30e5d21bb2d203436c72a.tar.xz |
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>
Diffstat (limited to 'remote.c')
-rw-r--r-- | remote.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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); |