Re: Tree with leading '0' modes in 1.7.0.3
- From
Avery Pennarun <apenwarr@gmail.com>
- Date
- Mar 26, 2010, 23:56 UTC
- Message-ID
- <32541b131003261656h430d77a8q753c6141297e8f86@mail.gmail.com>
- In-Reply-To
- <7v7hoyabiv.fsf@alter.siamese.dyndns.org>
On Fri, Mar 26, 2010 at 7:50 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes: > >> Scott, please fix that library on GitHub. JGit's fsck has a hard >> failure on these malformed trees, because the leading '0' mode >> causes the tree to come up with the wrong SHA-1 hash given its >> logical content. They shouldn't be created like this. > > What is curious is that even though 6407180 (git-fsck-cache: be stricter > about "tree" objects, 2005-07-27) does talk about zero-padding, it appears > that we never had a version of git that padded mode in '0' in the entire > history of write-tree (except that "notes tree" one, but even that didn't > escape the laboratory).
It's apparently an easy mistake to make. bup did this for a while until I added a 'git fsck' to its automated tests :)
The problem is that everything in git works perfectly with these invalid file modes *except* fsck, and there's rarely a need to run fsck, so this problem can hide for a long time.
Have fun,
Avery