提交 770896e5 编写于 作者: L 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.
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册