fsck: report trees as dangling
commitb4584e4f665f59f51572f479db6baf1a1cdbc03a
authorJeff King <peff@peff.net>
Mon, 16 Jan 2017 21:25:35 +0000 (16 16:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Jan 2017 20:49:41 +0000 (17 12:49 -0800)
tree7b7a24bc811699b7b75e786916690aa429a46694
parent1ada11ee62658ff4366d93b97995eea055827171
fsck: report trees as dangling

After checking connectivity, fsck looks through the list of
any objects we've seen mentioned, and reports unreachable
and un-"used" ones as dangling. However, it skips any object
which is not marked as "parsed", as that is an object that
we _don't_ have (but that somebody mentioned).

Since 6e454b9a3 (clear parsed flag when we free tree
buffers, 2013-06-05), that flag can't be relied on, and the
correct method is to check the HAS_OBJ flag. The cleanup in
that commit missed this callsite, though. As a result, we
would generally fail to report dangling trees.

We never noticed because there were no tests in this area
(for trees or otherwise). Let's add some.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fsck.c
t/t1450-fsck.sh