Re: [PATCH v10 0/4] cat-file: add support for "-allow-unknown-type"
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- May 4, 2015, 02:55 UTC
- Message-ID
- <CAPig+cQKqkoqN+o_QfVBRvxGdNuJn_oxD5YMsvnBOHguimJhGQ@mail.gmail.com>
- In-Reply-To
- <xmqqvbg9td0x.fsf@gitster.dls.corp.google.com>
On Sun, May 3, 2015 at 8:14 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
> Junio C Hamano <gitster@pobox.com> writes: > >> Hmmmm... you do not seem to pass your own test. >> >> expecting success: >> echo $bogus_type >expect && >> git cat-file -t --allow-unknown-type $bogus_sha1 >actual && >> test_cmp expect actual >> >> --- expect 2015-05-04 00:09:24.327335512 +0000 >> +++ actual 2015-05-04 00:09:24.335335473 +0000 >> @@ -1 +1 @@ >> -abcdefghijklmnopqrstuvwxyz1234679 >> +abcdefghijklmnopqrstuvwxyz123467abcdefghijklmnopqrstuvwxyz1234679 >> not ok 86 - Type of broken object is correct when type is large > > Perhaps it would have a better chance of being correct with this > squashed in.
Interestingly, neither test passes on Mac OS X even with this fixup. In fact, the git-hash-object invocation which computes/retrieves 'bogus_sha1' with the extra long bogus type crashes with SIGABRT in write_sha1_file_prepare(). Still investigating.
Show 29 quoted lines
> -- >8 --
> [PATCH] fixup! sha1_file: support reading from a loose object of unknown type
>
> ---
> sha1_file.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/sha1_file.c b/sha1_file.c
> index f65bf90..e010e7c 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -1568,7 +1568,6 @@ static int unpack_sha1_header_to_strbuf(git_zstream *stream, unsigned char *map,
> unsigned long mapsize, void *buffer,
> unsigned long bufsiz, struct strbuf *header)
> {
> - unsigned char *cp;
> int status;
>
> status = unpack_sha1_header(stream, map, mapsize, buffer, bufsiz);
> @@ -1579,7 +1578,6 @@ static int unpack_sha1_header_to_strbuf(git_zstream *stream, unsigned char *map,
> if (memchr(buffer, '\0', stream->next_out - (unsigned char *)buffer))
> return 0;
>
> - strbuf_add(header, buffer, stream->next_out - (unsigned char *)buffer);
> do {
> status = git_inflate(stream, 0);
> strbuf_add(header, buffer, stream->next_out - (unsigned char *)buffer);
> --
> 2.4.0-282-g4432dd4