David Turner <dtur...@twosigma.com> writes:
> From: Jeff King <p...@peff.net>
> When the tree-walker runs into an error, it just calls
> die(), and the message is always "corrupt tree file".
> However, we are actually covering several cases here; let's
> give the user a hint about what happened.
> Let's also avoid using the word "corrupt", which makes it
> seem like the data bit-rotted on disk. Our sha1 check would
> already have found that. These errors are ones of data that
> is malformed in the first place.
> Signed-off-by: David Turner <dtur...@twosigma.com>
> Signed-off-by: Jeff King <p...@peff.net>
> t/t1007-hash-object.sh | 15 +++++++++++++--
> t/t1007/.gitattributes | 1 +
> t/t1007/tree-with-empty-filename | Bin 0 -> 28 bytes
> t/t1007/tree-with-malformed-mode | Bin 0 -> 39 bytes
> tree-walk.c | 12 +++++++-----
> 5 files changed, 21 insertions(+), 7 deletions(-)
> create mode 100644 t/t1007/.gitattributes
> create mode 100644 t/t1007/tree-with-empty-filename
> create mode 100644 t/t1007/tree-with-malformed-mode
I hate to report this, but this alone, or together with 2/2, when
merged to 'pu', I cannot get them to pass the tests in my automated
integration tests, even though they seem to pass when the problematic
tests are run manually. I do not see offhand anything suspicious
(like something that may be racy) in these two patches but I haven't
figured out where it goes wrong.
If somebody manages to find breakages in today's 'pu', please (1) do
not be too alarmed, and (2) help figure out where things are broken.