Re: [RFC/PATCH] verify-tag: add --check-name flag
- From
Jeff King <peff@peff.net>
- Date
- Jun 7, 2016, 21:55 UTC
- Message-ID
- <20160607215536.GA20768@sigill.intra.peff.net>
- In-Reply-To
- <xmqq37oopt28.fsf@gitster.mtv.corp.google.com>
On Tue, Jun 07, 2016 at 02:50:23PM -0700, Junio C Hamano wrote:
Show 21 quoted lines
> >> Or it could even do this: > >> > >> tag="$1" > >> if ! git tag -v "$tag" > >> if ! git tag -v "$tag" > >> then > >> echo >&2 "Bad tag." > >> exit 1 > >> fi > >> + tag=$(git tag --show-tagname $tag) > >> make dest=/usr/local/$package/$tag install > > > > It is racy. That probably doesn't matter for most callers, but it would > > be nice to be able to get a custom format out of the "-v" invocation. > > Heh, you can do > > - tag="$1" > + tag=$(git rev-parse --verify "$1") > > upfront and it no longer is racy, no?
Yes, though that doesn't quite work today. The formatted output comes from "tag -l", which wants a refname. You can almost use "git show", but its format specifiers don't do tag parsing (they probably should). Likewise you can't use cat-file, as it doesn't do any intra-object parsing at all (which arguably it should).
I'm still not sure I like the direction, simply because it requires 3 invocations of git to accomplish this task (which is inefficient in terms of processes, but also just means the interface is a bit tedious to work with; we could be making this easier for the caller).
-Peff