In particular, teach it about tags. Also, to make reachability actually
work for tags, we need to add the ref to the tagged object.
continue;
if (!get_sha1(arg, head_sha1)) {
- struct commit *commit = lookup_commit(head_sha1);
- struct object *obj;
+ struct object *obj = lookup_object(head_sha1);
- /* Error is printed by lookup_commit(). */
- if (!commit)
+ /* Error is printed by lookup_object(). */
+ if (!obj)
continue;
- obj = &commit->object;
obj->used = 1;
mark_reachable(obj, REACHABLE);
heads++;
goto err;
item->tagged = parse_object(object);
+ if (item->tagged)
+ add_ref(&item->object, item->tagged);
type_line = data + 48;
if (memcmp("\ntype ", type_line-1, 6))