From: Junio C Hamano Date: Thu, 20 Oct 2005 05:23:30 GMT Subject: Re: [PATCH] cg-fetch will now retrieve commits related to tags if missing. Message-ID: <7v3bmwu5gt.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <46a038f90510192159h25aad025kf377e3e33b5d30d@mail.gmail.com> Martin Langhoff writes: > Ok -- I was using ^{commit} which _is_ lazy, but you are > right, ^0 isn't lazy. Ah, my mistake. We would need something like this. --- diff --git a/sha1_name.c b/sha1_name.c index 75c688e..cc320d3 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -323,6 +323,8 @@ static int peel_onion(const char *name, return -1; if (!type_string) { o = deref_tag(o); + if (!o || (!o->parsed && !parse_object(o->sha1))) + return -1; memcpy(sha1, o->sha1, 20); } else { @@ -332,7 +334,7 @@ static int peel_onion(const char *name, */ while (1) { - if (!o) + if (!o || (!o->parsed && !parse_object(o->sha1))) return -1; if (o->type == type_string) { memcpy(sha1, o->sha1, 20);