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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 10 May 2019 10:51:40 +0300

> From: Juri Linkov <[email-masked]>
> Cc: [email-masked]
> Date: Wed, 08 May 2019 22:52:34 +0300
> 
> 1. the case when region's beginning (b) and region's end (e)
>    is on the same revision in the log-view buffer:
> 
>   * h8..: 2019-05-08 Revision h8.
> be* g7..: 2019-05-07 Revision g7.
>   * f6..: 2019-05-06 Revision f6.
>   * e5..: 2019-05-05 Revision e5.
> 
> compares the revision f6 (the previous revision of g7) and g7.
> This behavior was unchanged by the bug#28466.
> 
> 2. This case demonstrates the behavior
>    BEFORE the change in bug#28466:
> 
>   * h8..: 2019-05-08 Revision h8.
> b * g7..: 2019-05-07 Revision g7.
> e * f6..: 2019-05-06 Revision f6.
>   * e5..: 2019-05-05 Revision e5.
> 
> compared the revision f6 (from region's end) and g7 (from region's beginning).
> This was the correct behavior.
> 
> 3. Now this case demonstrates the incorrect behavior
>    AFTER the change in bug#28466:
> 
>   * h8..: 2019-05-08 Revision h8.
> b * g7..: 2019-05-07 Revision g7.
> e * f6..: 2019-05-06 Revision f6.
>   * e5..: 2019-05-05 Revision e5.
> 
> compares the revision e5 (the previous revision of the revision at region's end)
> and g7 (from region's beginning).

What does "e" signify in these examples?  Does it mean the line
indicated with "e" is part of the region?  If so, then the current
behavior (item 3) looks correct to me, and previous behavior (item 2)
looks INcorrect.  The '=' command should show the combined effect of
all the changes included in the region, so it should compare the last
revision with the one before the first.  This is also what I see with
Emacs 26.2 on my system.

Am I missing something?

> But the fix broke the case when region's end is in the middle
> of the buffer.

I don't yet see how it breaks anything, sorry.