Re: bug: git-repack -a -d produces broken pack on NFS
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Apr 27, 2006, 22:29 UTC
- Message-ID
- <Pine.LNX.4.64.0604271526140.3701@g5.osdl.org>
- In-Reply-To
- <7v4q0ek6i3.fsf@assigned-by-dhcp.cox.net>
On Thu, 27 Apr 2006, Junio C Hamano wrote:
Show 11 quoted lines
> Linus Torvalds <torvalds@osdl.org> 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