mirror of
https://github.com/git/git
synced 2024-10-04 07:39:24 +00:00
fsck --lost-found: write blob's contents, not their SHA-1
When looking for a lost blob, it is much nicer to be able to grep through .git/lost-found/other/* than to write an inefficient loop over the file names. So write the contents of the dangling blobs, not their object names. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c4640fe8d9
commit
16a7fcfe5e
|
@ -65,8 +65,10 @@ index file and all SHA1 references in .git/refs/* as heads.
|
||||||
Be chatty.
|
Be chatty.
|
||||||
|
|
||||||
--lost-found::
|
--lost-found::
|
||||||
Write dangling refs into .git/lost-found/commit/ or
|
Write dangling objects into .git/lost-found/commit/ or
|
||||||
.git/lost-found/other/, depending on type.
|
.git/lost-found/other/, depending on type. If the object is
|
||||||
|
a blob, the contents are written into the file, rather than
|
||||||
|
its object name.
|
||||||
|
|
||||||
It tests SHA1 and general object sanity, and it does full tracking of
|
It tests SHA1 and general object sanity, and it does full tracking of
|
||||||
the resulting reachability and everything else. It prints out any
|
the resulting reachability and everything else. It prints out any
|
||||||
|
|
|
@ -152,7 +152,17 @@ static void check_unreachable_object(struct object *obj)
|
||||||
}
|
}
|
||||||
if (!(f = fopen(filename, "w")))
|
if (!(f = fopen(filename, "w")))
|
||||||
die("Could not open %s", filename);
|
die("Could not open %s", filename);
|
||||||
fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
|
if (obj->type == OBJ_BLOB) {
|
||||||
|
enum object_type type;
|
||||||
|
unsigned long size;
|
||||||
|
char *buf = read_sha1_file(obj->sha1,
|
||||||
|
&type, &size);
|
||||||
|
if (buf) {
|
||||||
|
fwrite(buf, size, 1, f);
|
||||||
|
free(buf);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue