diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-10-26 01:06:56 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-10-26 01:06:56 +0200 |
commit | 061a21d36d807bdcf996f388d5e487d5e1993bbc (patch) | |
tree | 60c0032485577875d1dbbb0a121617c833c374b8 /object-store.h | |
parent | The fourteenth batch (diff) | |
parent | fsck: report invalid object type-path combinations (diff) | |
download | git-061a21d36d807bdcf996f388d5e487d5e1993bbc.tar.xz git-061a21d36d807bdcf996f388d5e487d5e1993bbc.zip |
Merge branch 'ab/fsck-unexpected-type'
"git fsck" has been taught to report mismatch between expected and
actual types of an object better.
* ab/fsck-unexpected-type:
fsck: report invalid object type-path combinations
fsck: don't hard die on invalid object types
object-file.c: stop dying in parse_loose_header()
object-file.c: return ULHR_TOO_LONG on "header too long"
object-file.c: use "enum" return type for unpack_loose_header()
object-file.c: simplify unpack_loose_short_header()
object-file.c: make parse_loose_header_extended() public
object-file.c: return -1, not "status" from unpack_loose_header()
object-file.c: don't set "typep" when returning non-zero
cat-file tests: test for current --allow-unknown-type behavior
cat-file tests: add corrupt loose object test
cat-file tests: test for missing/bogus object with -t, -s and -p
cat-file tests: move bogus_* variable declarations earlier
fsck tests: test for garbage appended to a loose object
fsck tests: test current hash/type mismatch behavior
fsck tests: refactor one test to use a sub-repo
fsck tests: add test for fsck-ing an unknown type
Diffstat (limited to 'object-store.h')
-rw-r--r-- | object-store.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/object-store.h b/object-store.h index 1e647a5be3..07387dc48f 100644 --- a/object-store.h +++ b/object-store.h @@ -245,6 +245,7 @@ int force_object_loose(const struct object_id *oid, time_t mtime); /* * Open the loose object at path, check its hash, and return the contents, + * use the "oi" argument to assert things about the object, or e.g. populate its * type, and size. If the object is a blob, then "contents" may return NULL, * to allow streaming of large blobs. * @@ -252,9 +253,9 @@ int force_object_loose(const struct object_id *oid, time_t mtime); */ int read_loose_object(const char *path, const struct object_id *expected_oid, - enum object_type *type, - unsigned long *size, - void **contents); + struct object_id *real_oid, + void **contents, + struct object_info *oi); /* Retry packed storage after checking packed and loose storage */ #define HAS_OBJECT_RECHECK_PACKED 1 |