Subject: Re: bug#50489: vc-annotate doesn't keep the current line

From: Dmitry Gutov <[email-masked]>
Date: Tue, 14 Sep 2021 02:45:30 +0300

On 13.09.2021 21:19, Daniel Martín via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> Juri Linkov<[email-masked]>  writes:
> 
>> After 'C-x v g' (vc-annotate), typing 'a' (vc-annotate-revision-previous-to-line)
>> doesn't keep the current line.  For VC archaeology there is a need to traverse
>> the history of the current line by typing a sequence of 'a a a ...'
>> But 'a' doesn't keep the line current, so need to spend time
>> finding the same line in the buffer to be able to type 'a' on it again.
> I think `git blame` provides a --porcelain option that helps track lines
> accross revisions.  I expect that using that information would be an
> improvement over the current behavior, but the solution won't be perfect
> and in some situations it'll still go to a strange line.  Also, I don't
> know if this feature is available in other non-git vc backends.

Interesting suggestion. I think reliance on known line numbers can be 
made optional for backends that do not provide that info.

--porcelain (or --list-porcelain) output is peculiar and not 
customizable, so it would take some work to convert in to the same view 
we are currently enjoying. Hopefully without any loss in performance 
(I'm guessing the slowest part is still going to be the scanning of 
history).