Commit 770896e5 authored by Linus Torvalds's avatar Linus Torvalds

Teach fsck-cache to accept non-commits for reachability analysis.

In particular, teach it about tags. Also, to make reachability actually
work for tags, we need to add the ref to the tagged object.
parent 552e2bd1
......@@ -295,14 +295,12 @@ int main(int argc, char **argv)
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++;
......
......@@ -49,6 +49,8 @@ int parse_tag(struct tag *item)
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))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment