Re: Surprising 'git-describe --all --match' behavior.
- From
- Sergei Organov <osv@javad.com>
- Date
- Jun 19, 2014, 18:58 UTC
- Message-ID
- <87d2e4d8w7.fsf@osv.gnss.ru>
- In-Reply-To
- <xmqqr42khl3l.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 31 quoted lines
> Sergei Organov <osv@javad.com> writes: > >> Just playing with it, got some surprises: >> >> $ git --version >> git version 1.9.3 >> >> $ git describe --all >> heads/v3.5 >> $ git describe --all --match 'v*' >> tags/v3.5.6b2-4-gab4bf78 >> $ git describe --all --match 'heads/v*' >> fatal: No names found, cannot describe anything. > > I think > > $ git describe --help > > ... > --match <pattern> > Only consider tags matching the given glob(7) pattern, > excluding the "refs/tags/" prefix. This can be used to > avoid leaking private tags from the repository. > ... > > is poorly phrased, especially its "excluding" part. What it wants > to say is "You give <pattern> but without refs/tags/, because the > program helpfully always prepend refs/tags/ to your pattern and > limit the output to those that match". Hence you gave 'v*' as > <pattern> and limited the output to those that match 'refs/tags/v*' > (or you gave 'heads/v*' and limited to 'refs/tags/heads/v*').
OK, thanks, at least I now see how it works. So no <pattern> can ever match any reference but tag, even when --all switch is given? If so, appearance of --match effectively turns --all into --tags, that is still rather confusing, isn't it?
Will something break if it won't helpfully prepend refs/tags/ once --all is given?
-- Sergei.