Skip to content

Commit

Permalink
Revert "check_packed_git_idx(): check integrity of the idx file itself."
Browse files Browse the repository at this point in the history
This reverts c5ced64 commit.
It turns out that doing this check every time we map the idx file
is quite expensive.  A corrupt idx file is caught by git-fsck-objects,
so this check is not strictly necessary.

In one unscientific test, 0.99.9m spent 10 seconds usertime for
the same task 1.1.3 takes 37 seconds usertime.  Reverting this gives
us the performance of 0.99.9 back.
  • Loading branch information
Junio C Hamano committed Jan 20, 2006
1 parent ee3d299 commit e93ec6f
Showing 1 changed file with 1 addition and 15 deletions.
16 changes: 1 addition & 15 deletions sha1_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,12 @@ struct packed_git *packed_git;
static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
void **idx_map_)
{
SHA_CTX ctx;
unsigned char sha1[20];
void *idx_map;
unsigned int *index;
unsigned long idx_size;
int nr, i;
int fd;
int fd = open(path, O_RDONLY);
struct stat st;

fd = open(path, O_RDONLY);
if (fd < 0)
return -1;
if (fstat(fd, &st)) {
Expand Down Expand Up @@ -368,16 +364,6 @@ static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
if (idx_size != 4*256 + nr * 24 + 20 + 20)
return error("wrong index file size");

/*
* File checksum.
*/
SHA1_Init(&ctx);
SHA1_Update(&ctx, idx_map, idx_size-20);
SHA1_Final(sha1, &ctx);

if (memcmp(sha1, idx_map + idx_size - 20, 20))
return error("index checksum mismatch");

return 0;
}

Expand Down

0 comments on commit e93ec6f

Please sign in to comment.