fsck: fix broken loose object check.
authorJunio C Hamano <junkio@cox.net>
Mon, 5 Mar 2007 08:21:24 +0000 (00:21 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 5 Mar 2007 08:55:19 +0000 (00:55 -0800)
When "git fsck" without --full found a loose object missing
because it was broken, it mistakenly thought it was not parsed
because we found it in one of the packs. Back when this code
was written, we did not have a way to explicitly check if we
have the object in pack, but we do now.

Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-fsck.c
index 6abf498d2b391c97e9efcdb32da1cf3b5d566397..abdd0f2c185d5ae52c644526c78929b58001c8c0 100644 (file)
@@ -67,7 +67,7 @@ static void check_reachable_object(struct object *obj)
         * do a full fsck
         */
        if (!obj->parsed) {
-               if (has_sha1_file(obj->sha1))
+               if (has_sha1_pack(obj->sha1, NULL))
                        return; /* it is in pack - forget about it */
                printf("missing %s %s\n", typename(obj->type), sha1_to_hex(obj->sha1));
                return;