Re: [PATCH] cg-fetch will now retrieve commits related to tags if missing.
Martin Langhoff <martin.langhoff@gmail.com> 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);