From: Jay Soffian Date: Mon, 02 Mar 2009 18:01:30 GMT Subject: Re: [RFC] Refspec patterns with * in the middle Message-ID: <76718490903021001h16009570p7ac8c66a8e8e1f90@mail.gmail.com> In-Reply-To: <7viqmrn98i.fsf@gitster.siamese.dyndns.org> On Mon, Mar 2, 2009 at 12:08 PM, Junio C Hamano wrote: > Daniel Barkalow writes: > >> My use case is actually, more precisely: >> >> some/constant/stuff/$PROJ-$NUMBER/junk/my-proj >> >> Where $NUMBER is the version number, and $PROJ is usually, but not quite >> always "my-proj"; the exception being that it might be effectively a >> superproject. So I'd like to have: >> >>  fetch = some/constant/stuff/my-proj-*/junk/my-proj:refs/remotes/origin/* > > ... and expect "some/constant/stuff/my-proj-2.5/junk/my-proj" to be mapped > to "refs/remotes/origin/2.5"?  I think it does not look too bad. > >> But I can live with remote branches like "my-proj-2.4" instead of "2.4". >> >> I think it would make sense, and limit typo damage, to say that the * can >> only expand to something with a '/' in it if the star has a slash or the >> end of the string on each side. > > I do not understand what you mean by "* can only expand to something with > a '/' in it if ..." part.  None of the examples in your message have a > case where the asterisk matches across directory boundaries, and I thought > you would simply say "* does not match /" and be done with that. > > What scenario do you have in mind that wants to match a slash with an > asterisk? I think he means the following are valid: - foo/bar/*/baz - foo/bar/baz/* But the following is not: - foo/bar*/baz IOW, '*' can only appear as a non-terminating symbol if it is bounded by '/' on each side. j.