Thread (9 messages) 9 messages, 3 authors, 22d ago

Re: git-blame vs. abbrev

From: Junio C Hamano <hidden>
Date: 2026-06-30 19:49:21

Laszlo Ersek [off-list ref] writes:
Hi,

when git-blame is passed the "-b" option ("Show blank SHA-1 for boundary 
commits"), shouldn't git-blame *stop* reserving a commit hash nibble for 
the caret that otherwise marks boundary commits?

More directly, I find it inconvenient that git-blame shows commit hashes 
that are one nibble longer (13) than my "core.abbrev" (12) setting; that 
makes cutting and pasting commit hashes from the git-blame output into a 
git-rebase TODO list cumbersome.
I never knew that the parser in rebase did not want to see a longer
abbreviation; shouldn't it take 16 hexadecimal abbreviation from the
result of letting the user edit the list, even if it initially gave
12 hexadecimal abbreviation, as long as these extra 4 hexdigits do
not break the commit object name?  That is a more serious usability
bug that needs to be fixed, if it is the case, I would think.

FWIW, even if your core.abbrev says you want 12, if two objects
share the same 12 hexdigits as the prefix, you do end up getting 13
or more, so a parser that insists on exact 12 hexdigits sounds like
a bug.

Just for the sake of aesthetics, I agree that when we are not
showing the boundary mark, it would make sense not to reserve one
column that we know we will never use.  But unless there is a
mistaken parser that insists on 12 hexdigits when 13 hexdigits you
give uniquely identify the same object, I suspect you wouldn't even
notice that the hexadecimal digits you see on the screen have one
digit longer than usual ;-).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help