Subject: Re: bug#64071: 28.2; smerge-diff creates *vc-diff* without setting it up

From: Eli Zaretskii <[email-masked]>
Date: Thu, 15 Jun 2023 10:20:18 +0300

> From: Spencer Baugh <[email-masked]>
> Date: Wed, 14 Jun 2023 17:41:39 -0400
> 
> 1. emacs -Q
> 2. Create a buffer containing:
> <<<<<<< left
> foo
> =======
> bar
> >>>>>>> right
> 3. M-x smerge-mode
> 4. M-x smerge-diff-upper-lower
> 5. The resulting *vc-diff* buffer is in diff-mode but it's not
> read-only, which is unusual for a *vc-diff* buffer.

That command enters diff-mode, and diff-mode doesn't force read-only
status on the current buffer.  Why should Smerge force that?

> Probably there is also other setup missing.

Which ones, and to what mode they belong?

> Relatedly, if a *vc-diff* buffer already exists, smerge-mode will use it
> without updating the mode-line, so it will say, for example, "Diff from
> *vc-change-log*" despite the diff being from smerge conflict resolution.

This should probably be easy to fix, and the fix should be safe enough
for the emacs-29 branch.  How about proposing such a fix, and leaving
the more controversial aspects of this alone for now?

Thanks.