On Fri, 1 Sep 2006, A Large Angry SCM wrote: > > Unfortunately, the zlib CRC is of the _uncompressed_ data [1], so > inflating the stream is still necessary to check for corruption. I don't think that is unfortunate. We really should inflate the stream anyway, since not only inflating it, but also applying any deltas to the base object is really the only way to verify its correctness for a delta thing. Otherwise, the SHA1 of the base could be totally corrupt. And once you inflate it and apply all deltas, you obviously also get the full SHA1 check, so you're _really_ safe. So let's do the really safe thing first, and see if it actually results in any problems. NOTE NOTE NOTE! We might well choose to do this checking _only_ when we write the index file (ie we have "!pack_to_stdout" set). Why? Because if we pack to stdout, and don't generate an index file, then by _definition_ the other end has to do the index generation, which means that the other end will be doing all the SHA1 re-calculation and sanity checking (and thus inflation and CRC checking). So this means that if we only do this for the "!pack_to_stdout" case, we won't be adding any overhead to the git network protocol server, only to "git repack". Which is exactly what we want to do. Linus - To unsubscribe from this list: 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