Subject: Re: bug#77465: 29.4; VC annotate does not display tabs properly

From: Tom Tromey <[email-masked]>
Date: Thu, 03 Apr 2025 08:56:12 -0600

>> b88e9cded7ae (Paul Eggert             2016-01-26  230)    /* Work around a bug in glibc's malloc.  MALLOC_CHECK_ must be

Eli> AFAICT, "git annotate" produces the same effect when invoked from the
Eli> shell prompt.  I'm not sure we should try to be "holier than the Pope"
Eli> here.

I see it as being along the line of font-locking the annotation buffer
by age -- it's a display feature to help make the output more readable.
That is, git may do the wrong thing but Emacs doesn't have to.

>> One simple fix would be to ensure that the margin text is always a
>> multiple of 8.

Eli> I don't think this is practical, since Git doesn't guarantee the
Eli> prefix of a line to be of a fixed width.

I didn't realize that.

>> However, a more sophisticated approach may be possible as well.

Eli> The only idea I have is to replace each tab with a suitable number of
Eli> spaces, but that would probably make this command much slower, since
Eli> the buffer created by "C-x v =" is typically very large.

Eli> Any other ideas?

It's been a long time since I dug into this kind of thing but I was
wondering if there is some kind of display and/or text property feature
that would help.

Maybe putting a :align-to on the space following the ")" would help.

Note that, at least in the repositories I use, annotation display is
already slow enough (presumably due to extensive history in git) that
another minor slowdown to find the correct width would not really be
noticeable.

Tom