mirror of
https://github.com/git/git
synced 2024-08-26 19:19:18 +00:00
git-repack: Properly abort in corrupt repository
In a corrupt repository, git-repack produces a pack that does not contain needed objects without complaining, and the result of this combined with -d flag can be very painful -- e.g. a lossage of one tree object can lead to lossage of blobs reachable only through that tree. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
b17e659dd4
commit
ef07618fdd
|
@ -41,7 +41,7 @@ esac
|
||||||
if [ "$local" ]; then
|
if [ "$local" ]; then
|
||||||
pack_objects="$pack_objects --local"
|
pack_objects="$pack_objects --local"
|
||||||
fi
|
fi
|
||||||
name=$(git-rev-list --objects $rev_list $(git-rev-parse $rev_parse) |
|
name=$(git-rev-list --objects $rev_list $(git-rev-parse $rev_parse) 2>&1 |
|
||||||
git-pack-objects --non-empty $pack_objects .tmp-pack) ||
|
git-pack-objects --non-empty $pack_objects .tmp-pack) ||
|
||||||
exit 1
|
exit 1
|
||||||
if [ -z "$name" ]; then
|
if [ -z "$name" ]; then
|
||||||
|
|
|
@ -524,7 +524,7 @@ int main(int argc, char **argv)
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
|
|
||||||
if (get_sha1_hex(line, sha1))
|
if (get_sha1_hex(line, sha1))
|
||||||
die("expected sha1, got garbage");
|
die("expected sha1, got garbage:\n %s", line);
|
||||||
hash = 0;
|
hash = 0;
|
||||||
p = line+40;
|
p = line+40;
|
||||||
while (*p) {
|
while (*p) {
|
||||||
|
|
Loading…
Reference in a new issue