> So in some senes this matters to nobody, but I'm doing this as part of > general changes I've been pushing to make fsck/gc error reporting more > graceful, and errors more recoverable. We now have a few more places > in object-file.c where we don't just die(), but properly return > API-like return codes/data to the caller instead. Well, I guess it's useful if somehow your repository got corrupted, and you want to pinpoint where it occurred. > Ævar Arnfjörð Bjarmason (17): > fsck tests: refactor one test to use a sub-repo > fsck tests: add test for fsck-ing an unknown type > cat-file tests: test for missing object with -t and -s > cat-file tests: test that --allow-unknown-type isn't on by default > rev-list tests: test for behavior with invalid object types > cat-file tests: add corrupt loose object test > cat-file tests: test for current --allow-unknown-type behavior > cache.h: move object functions to object-store.h > object-file.c: make parse_loose_header_extended() public > object-file.c: add missing braces to loose_object_info() > object-file.c: stop dying in parse_loose_header() > object-file.c: return -2 on "header too long" in unpack_loose_header() > object-file.c: return -1, not "status" from unpack_loose_header() > fsck: don't hard die on invalid object types > object-store.h: move read_loose_object() below 'struct object_info' > fsck: report invalid types recorded in objects > fsck: report invalid object type-path combinations My main comment as a reviewer is I think that there are a lot of unrelated changes in this patch set - in particular, the first 7 tests (1 fsck test that refactors something unrelated, 1 fsck test that I presume will be overridden later, and 5 tests for other commands unrelated to fsck). I'll also give comments on individual patches.