From: Jeff King Date: Mon, 16 Jan 2017 23:26:28 GMT Subject: Re: [PATCH 0/6] fsck --connectivity-check misses some corruption Message-ID: <20170116232627.hdzovhho3lnl4kdr@sigill.intra.peff.net> In-Reply-To: <20170116212231.ojoqzlajpszifaf3@sigill.intra.peff.net> On Mon, Jan 16, 2017 at 04:22:31PM -0500, Jeff King wrote: > 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 " > [5/6]: fsck: do not fallback "git fsck " 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(-) Oh, one thing I forgot to mention: I tried test-merging this with my other recent topic in the area, jk/loose-object-fsck. There are a few conflicts in the test script, but nothing hard to resolve (just both of them adding tests at the end, but both are careful to clean up after themselves). -Peff