OSDN Git Service

get_short_sha1: parse tags when looking for treeish
authorJeff King <peff@peff.net>
Mon, 26 Sep 2016 11:59:48 +0000 (07:59 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Sep 2016 18:46:30 +0000 (11:46 -0700)
commit5d5def2aa56dc9b6d4eccfb333fd08aa713733e7
tree61636febb07a64389941604c109e72958a022d9b
parent8a10fea49b1f95daeea445072a60139590b216cf
get_short_sha1: parse tags when looking for treeish

The treeish disambiguation function tries to peel tags, but
it does so by calling:

  deref_tag(lookup_object(sha1), ...);

This will only work if we have previously looked at the tag
and created a "struct tag" for it. Since parsing revision
arguments typically happens before anything else, this is
usually not the case, and we would fail to peel the tag (we
are lucky that deref_tag() gracefully handles the NULL and
does not segfault).

Instead, we can use parse_object(). Note that this is the
same fix done by 94d75d1 (get_short_sha1(): correctly
disambiguate type-limited abbreviation, 2013-07-01), but
that commit fixed only the committish disambiguator, and
left the bug in the treeish one.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_name.c
t/t1512-rev-parse-disambiguation.sh