From: Jeff King Date: Wed, 22 Oct 2025 09:27:08 GMT Subject: Re: [BUG] Strange git notes completion behaviour Message-ID: <20251022092708.GE853931@coredump.intra.peff.net> In-Reply-To: <013201dc42d5$07a71550$16f53ff0$@nexbridge.com> On Tue, Oct 21, 2025 at 05:52:38PM -0400, rsbecker@nexbridge.com wrote: > It is the exit code. When in gdb, the return from notes is -12 as above. By the time > It gets back to bash, the lower bytes are dropped so I end up with a 0xFF, which > bash thinks is a 0, so the exit code is hidden from view. I tried the !!fn construct > in a standard alone test program with no wisdom gained. I don't think the "!!fn()" line ever returns here. In the show() function of builtin/notes.c (which is what "fn" is pointing to for "git notes show"), we end up calling execv_git_cmd() to run "git show". So you are really seeing the exit code of something like: git show $(git notes list HEAD) That in turn is propagating the return from show_blob_object(). Which I'd think would return "0" here, since it actually showed the blob, though it does look like it could return -1 in a few cases. Another possible point of confusion: that git-show invocation will run a pager. It's been a long time since I've looked at that code, but IIRC we try to preserve the exit code of the actual Git command (rather than the pager). But you might try: git --no-pager notes show HEAD to see if that behaves differently. I couldn't reproduce the issue at all on my end. -Peff