aboutsummaryrefslogtreecommitdiff
path: root/fsck-cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'fsck-cache.c')
-rw-r--r--fsck-cache.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/fsck-cache.c b/fsck-cache.c
index 44e5e4994..d8d2e594f 100644
--- a/fsck-cache.c
+++ b/fsck-cache.c
@@ -23,27 +23,33 @@ static void check_connectivity(void)
struct object *obj = objs[i];
struct object_list *refs;
+ if (!obj->parsed) {
+ printf("missing %s %s\n", obj->type, sha1_to_hex(obj->sha1));
+ continue;
+ }
+
+ for (refs = obj->refs; refs; refs = refs->next) {
+ if (refs->item->parsed)
+ continue;
+ printf("broken link from %7s %s\n",
+ obj->type, sha1_to_hex(obj->sha1));
+ printf(" to %7s %s\n",
+ obj->type, sha1_to_hex(refs->item->sha1));
+ }
+
+ /* Don't bother with tag reachability. */
+ if (obj->type == tag_type)
+ continue;
+
if (show_unreachable && !(obj->flags & REACHABLE)) {
printf("unreachable %s %s\n", obj->type, sha1_to_hex(obj->sha1));
continue;
}
- if (!obj->parsed) {
- printf("missing %s %s\n", obj->type,
- sha1_to_hex(obj->sha1));
- }
if (!obj->used) {
printf("dangling %s %s\n", obj->type,
sha1_to_hex(obj->sha1));
}
- for (refs = obj->refs; refs; refs = refs->next) {
- if (!refs->item->parsed) {
- printf("broken link from %s\n",
- sha1_to_hex(obj->sha1));
- printf(" to %s\n",
- sha1_to_hex(refs->item->sha1));
- }
- }
}
}