Junio C Hamano <gitster@xxxxxxxxx> writes: > Especially that "refs/tags/*" is sad in that it is leaking an internal > implementation detail. I do not think the original code ever used > wildcards on the push side, and it probably was a good idea to allow > wildcards when the code was rewritten. Having thought about this a bit more, I think this patch would be more useful. Please discard the previous patch to builtin-push.c and replace with this patch. Now it allows you to say: [remote "neigh"] url = ../neighbour push = refs/tags/* to propagate all tags one-to-one, without having to say "refs/tags/*:refs/tags/*". This however has unintended side effect of allowing [remote "bour"] url = ../neighbour fetch = refs/heads/* at the syntax level. I do not know offhand the fetch backends are prepared to deal with such wildcard patterns. Daniel? --- remote.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/remote.c b/remote.c index 40ed246..c39d831 100644 --- a/remote.c +++ b/remote.c @@ -417,17 +417,21 @@ static struct refspec *parse_refspec_internal(int nr_refspec, const char **refsp rhs++; rlen = strlen(rhs); is_glob = (2 <= rlen && !strcmp(rhs + rlen - 2, "/*")); - rs[i].dst = xstrndup(rhs, rlen - is_glob * 2); + if (is_glob) + rlen -= 2; + rs[i].dst = xstrndup(rhs, rlen); } llen = (rhs ? (rhs - lhs - 1) : strlen(lhs)); - if (is_glob != (2 <= llen && !memcmp(lhs + llen - 2, "/*", 2))) - goto invalid; - - if (is_glob) { + if (2 <= llen && !memcmp(lhs + llen - 2, "/*", 2)) { + if (rhs && !is_glob) + goto invalid; + is_glob = 1; llen -= 2; - rlen -= 2; + } else if (rhs && is_glob) { + goto invalid; } + rs[i].pattern = is_glob; rs[i].src = xstrndup(lhs, llen); @@ -446,7 +450,7 @@ static struct refspec *parse_refspec_internal(int nr_refspec, const char **refsp } /* * RHS - * - missing is allowed. + * - missing is ok, and is same as empty. * - empty is ok; it means not to store. * - otherwise it must be a valid looking ref. */ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html