Re: [PATCH v2] fsck: handle NULL return of lookup_blob() and lookup_tree()
- From
René Scharfe <l.s.r@web.de>
- Date
- Oct 6, 2017, 16:21 UTC
- Message-ID
- <954958d2-5d5a-15e0-0e2b-421f859c1227@web.de>
- In-Reply-To
- <xmqq8tgpypyl.fsf@gitster.mtv.corp.google.com>
Am 06.10.2017 um 04:23 schrieb Junio C Hamano:
Show 19 quoted lines
> René Scharfe <l.s.r@web.de> writes:
>> + blob_bin=$(echo $blob | hex2oct) &&
>> + tree=$(
>> + printf "40000 dir\0${blob_bin}100644 file\0${blob_bin}" |
>
> Wow, that's ... cute.
>
>> + git hash-object -t tree --stdin -w --literally
>
> Makes me curious why --literally is here. Even if we let
> check_tree() called from index_mem() by taking the normal path,
> it wouldn't complain the type mismatch, I suspect. I guess doing it
> this way is a future-proof against check_tree() getting tightened in
> the future, in which case I think it makes sense.
>
> And for the same reason, hashing "--literally" like this patch does
> is a better solution than using "git mktree", which would have
> allowed us to avoid the hex2oct and instead feed the tree in a bit
> more human-readable way.git mktree errors out already, complaining about the object type mismatch. But I added "--literally" only accidentally, when I copied the invocation from a few lines up. The test works fine without that flag currently. The flag captures the intent, however, of knowingly building a flawed tree object.
René