Subject: Re: [BUG] Strange git notes completion behaviour

From: Jeff King <[email-masked]>
Date: Fri, 24 Oct 2025 13:46:59 -0400

On Fri, Oct 24, 2025 at 01:33:02PM -0400, [email-masked] wrote:

> What I found is this:
> 
> Git drops into sane_execvp and converts the
> 
> git notes show HEAD
> 
> to
> 
> git show 1aa950256829721750e809788e7b858db79a934a.
> 
> When execvp is called, it immediately fails with a -12 - not returned,
> just terminates. The -12 is an NonStop-specific execvp error indicating
> the process failed because the object is invalid (strange and likely
> an artifact rather than a real problem).

When you say "object" here, you don't mean a Git object, but rather that
execvp() could not run the "git" binary for some reason (so the "object"
here is the on-disk executable)? Just making sure I understand.

> When I use the arguments as presented to execvp via bash directly, I get:
> 
> error: no note found for object 1aa950256829721750e809788e7b858db79a934a.
>
> There is no commit with that hash. HEAD is actually 3fc1917e0e69b23265f5c49f90fdb6f4ed98f4a3
> so git show is correctly failing. This is Indicating that notes is not invoking git
> correctly.

Are you sure you are running "git show" there and not "git notes show".
Because 1aa950256 should be the blob that the note for HEAD points to,
and thus does not itself have a note. And "git show" should not be
looking up notes at all (and the "no note found" message is from
builtin/notes.c).

-Peff