On Thu, 27 Apr 2006, Junio C Hamano wrote: > Linus Torvalds <torvalds@xxxxxxxx> writes: > > > That said, the pack-file should all be written with the "sha1write()" > > interface, which is very careful indeed. > > > > I wonder if the _pack-file_ itself might be ok, and the problem is an > > index file corruption. For some reason we check the index file first, > > which is insane. We should check that the pack-file matches its _own_ SHA1 > > first, and check the index file second. > > We need to check both, so I fail to see why the order matters. It's insane to do any _cross_-file checking before you've even verified that the files themselves are valid. Another way of saying the same thing: checking whether the SHA1 of the pack-file matches the index file is pointless before you've verified that the SHA1 itself is valid. Basically, if the pack-file is corrupt, you want to know that. You don't want to know that it's SHA1 doesn't match the index file - that's a "secondary" issue to the fact that the SHA1 wasn't correct in the first place. Right now, if the pack-file is corrupt, it doesn't actually tell us so. It says that it doesn't match the index file. Which is likely wrong - it probably _does_ match the index file, but it's been corrupted. See the difference? Linus - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html