Merge branch 'ab/report-corrupt-object-with-type'
* ab/report-corrupt-object-with-type: sha1_file: Show the the type and path to corrupt objects
This commit is contained in:
commit
cdcf08e068
13
sha1_file.c
13
sha1_file.c
@ -2086,6 +2086,7 @@ void *read_sha1_file_repl(const unsigned char *sha1,
|
|||||||
{
|
{
|
||||||
const unsigned char *repl = lookup_replace_object(sha1);
|
const unsigned char *repl = lookup_replace_object(sha1);
|
||||||
void *data = read_object(repl, type, size);
|
void *data = read_object(repl, type, size);
|
||||||
|
char *path;
|
||||||
|
|
||||||
/* die if we replaced an object with one that does not exist */
|
/* die if we replaced an object with one that does not exist */
|
||||||
if (!data && repl != sha1)
|
if (!data && repl != sha1)
|
||||||
@ -2093,8 +2094,16 @@ void *read_sha1_file_repl(const unsigned char *sha1,
|
|||||||
sha1_to_hex(repl), sha1_to_hex(sha1));
|
sha1_to_hex(repl), sha1_to_hex(sha1));
|
||||||
|
|
||||||
/* legacy behavior is to die on corrupted objects */
|
/* legacy behavior is to die on corrupted objects */
|
||||||
if (!data && (has_loose_object(repl) || has_packed_and_bad(repl)))
|
if (!data) {
|
||||||
die("object %s is corrupted", sha1_to_hex(repl));
|
if (has_loose_object(repl)) {
|
||||||
|
path = sha1_file_name(sha1);
|
||||||
|
die("loose object %s (stored in %s) is corrupted", sha1_to_hex(repl), path);
|
||||||
|
}
|
||||||
|
if (has_packed_and_bad(repl)) {
|
||||||
|
path = sha1_pack_name(sha1);
|
||||||
|
die("packed object %s (stored in %s) is corrupted", sha1_to_hex(repl), path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (replacement)
|
if (replacement)
|
||||||
*replacement = repl;
|
*replacement = repl;
|
||||||
|
Loading…
Reference in New Issue
Block a user