Subject: Re: [PATCH] show-index: fix uninitialized hash function

From: Junio C Hamano <[email-masked]>
Date: Fri, 12 Jul 2024 08:35:15 -0700

Abhijeet Sonar <[email-masked]> writes:

> As stated in the docs, show-index should use SHA1 as the default hash algorithm
> when run outsize of a repository.  However, 'the_hash_algo' is currently left
> uninitialized if we are not in a repository and no explicit hash funciton is
> specified, causing a crash.  Fix it by falling back to SHA1 when it is found
> uninitialized.
>
> Signed-off-by: Abhijeet Sonar <[email-masked]>
> ---
>  builtin/show-index.c | 3 +++
>  1 file changed, 3 insertions(+)

Nicely described.

We'd probably want to protect this with a new test, so that
regardless of the choice of GIT_TEST_DEFAULT_HASH, the command
should behave as advertised.

Having said that, I am not sure if --object-format specified on the
command line, or picked up from the repository, makes much sense in
the context of the command, especially for the longer term [*].  The
command is designed to read from its standard input a byte-stream,
which is assumed to be an .idx file of _any_ origin, so ideally it
should be able to tell what hash the incoming data uses and use that
hash algorithm, without being told from the command line?

But that longer-term worry has nothing to do with the validity of
this patch (but the lack of test does).  Thanks.

[Footnote]

 * Perhaps the file format does not make it obvious what hash
   algorithm it uses, so it may be hard to auto-detect without
   additional code.  But if that is the case, it would be something
   we may want to eventually fix.