On Tue, Jun 07, 2016 at 02:50:23PM -0700, Junio C Hamano wrote:

> >> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to