Subject: bug#35624: log-view-diff regression

From: Dmitry Gutov <[email-masked]>
Date: Wed, 15 May 2019 03:34:24 +0300

On 14.05.2019 23:29, Juri Linkov wrote:

>> Sorry, I don't. Can you find the change that removed it?
> 
> I don't remember what VC backend produced such header, maybe
> vc-bzr or vc-svn.  Or probably vc-cvs because CVS has the same
> header as RCS, and I can easily check what headers RCS produces
> because it doesn't require any configuration.  For brevity
> only essential part of RCS log is left here for demonstration:

Thank you.

> Working file:

I guess RCS at least outputs some pertinent information here, not just 
that text, so it's less puzzling. I don't know how useful it is, though.

> ----------------------------
> revision 1.4
> ----------------------------
> revision 1.3
> ----------------------------
> revision 1.2
> ----------------------------
> revision 1.1
> 
> When the beginning of the region is on the "Working file" line
> in the header, and the end of the region is on a revision line,
> e.g. "revision 1.4", then typing `=' displays:
> 
>    No changes between 1.4 and workfile

You can also type 'C-u C-x v =', then '1.4', RET and C-j to omit the end 
version. That would also show the diff against the workfile.

> and if the current workfile has some changes, then differences
> between 1.4 and workfile are displayed.
> 
> This means that RCS supports this nice feature, but Git doesn't.

Just how nice is it, really? It seems pretty niche to me, and I don't 
remember the last time I needed something like this exactly.

>>> +      (with-current-buffer buffer
>>> +	(insert "Working\n")
>>
>> How does the result look? Just the word "Working" at the beginning of
>> the buffer?
> 
> If the word "Working" is too ambiguous, then at least an empty line
> at the beginning of the buffer will enable this feature for Git.

Should we really make the log look weirder for the sake of a feature one 
would use at most, I don't know... once a month?

Why don't we create a 'fake history' entry in vc-diff and vc-root-diff 
instead? Then the user could move point to a revision and type

   C-u C-x v = M-n RET C-j

It's not as quick maybe, but this way you also avoid having to set the 
"other' region bound.