Re: [PATCH] remote.c: Fix overtight refspec validation
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 26, 2008, 03:31 UTC
- Message-ID
- <7vod92jh3u.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <alpine.LFD.1.00.0803251841420.2775@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 13 quoted lines
> On Fri, 21 Mar 2008, Junio C Hamano wrote: >> >> We tightened the refspec validation code in an earlier ef00d15 (Tighten >> refspec processing, 2008-03-17) per my suggestion, but the suggestion was >> misguided to begin with and it broke this usage: > > It seems to have also broken "git push --tags". > > I now get > > fatal: Invalid refspec 'refs/tags/*' > > which seems a bit sad.
Yeah that indeed is very sad. Given that Andrew identified another regression on the fetch side today, I am beginning to suspect that 1.5.4 was still too early to merge the C rewrite. On the other hand, until we tag, new features are not tested in the field, so...
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.
In any case, this should fix it.
builtin-push.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c index b68c681..5316d6d 100644 --- a/builtin-push.c +++ b/builtin-push.c @@ -120,7 +120,7 @@ int cmd_push(int argc, const char **argv, const char *prefix) if (verbose) flags |= TRANSPORT_PUSH_VERBOSE; if (tags) - add_refspec("refs/tags/*"); + add_refspec("refs/tags/*:refs/tags/*"); if (all) flags |= TRANSPORT_PUSH_ALL; if (mirror)