Subject: Re: [PATCH] abbrev: allow extending beyond 20 chars to disambiguate

From: Junio C Hamano <[email-masked]>
Date: Mon, 11 Aug 2025 14:25:49 -0700

"brian m. carlson" <[email-masked]> writes:

> On 2025-08-11 at 15:26:32, Junio C Hamano wrote:
>> When you have two or more objects with object names that share more
>> than half the length of the hash algorithm in use (e.g. 10 bytes for
>> SHA-1 that produces 20-byte/160-bit hash), find_unique_abbrev()
>> fails to show disambiguation.
>
> Is this really the case?  

What I wrote in the above is correct.

> If the restriction is due to using
> GIT_MAX_RAWSZ instead of GIT_MAX_HEXSZ, then that's 32 vs. 64 in our
> modern codebase.

The above numbers are correct but irrelevant ;-).

The thing is, the offending commit changed from 40-bytes
(GIT_SHA1_HEXSZ) to 32-bytes (GIT_MAX_RAWSZ).  Plase see v2 patch.

Thanks.