I came across a repository today that was missing an object, and for which "git fsck" reported the error but "git fsck --connectivity-check" did not. It turns out that the shortcut taken by --connectivity-check violates some assumptions made by the rest of fsck (namely, that every object in the repo has a "struct object" loaded). And fsck being a generally neglected tool, I couldn't help but find several more bugs on the way. :) [1/6]: t1450: clean up sub-objects in duplicate-entry test [2/6]: fsck: report trees as dangling [3/6]: fsck: prepare dummy objects for --connectivity-check [4/6]: fsck: tighten error-checks of "git fsck <head>" [5/6]: fsck: do not fallback "git fsck <bogus>" to "git fsck" [6/6]: fsck: check HAS_OBJ more consistently builtin/fsck.c | 131 ++++++++++++++++++++++++++++++++++++++++++++------------ t/t1450-fsck.sh | 70 ++++++++++++++++++++++++++++-- 2 files changed, 171 insertions(+), 30 deletions(-) -Peff