Subject: bug#59457: closed (Re: bug#44698: 27.1; dir-locals.el stay on file-local-variables-alist when using vc-mode)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 10 Mar 2025 09:19:03 +0000

Your bug report

#59457: 29.0.50; Incorrect vc-parent-buffer-name on vc-change-log revert

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
59457: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59457
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#44698: 27.1; dir-locals.el stay on file-local-variables-alist when using vc-mode
From: Sean Whitton <[email-masked]>
To: [email-masked], [email-masked]
Date: Mon, 10 Mar 2025 17:18:11 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

On Sat 08 Mar 2025 at 05:11pm +08, Sean Whitton wrote:

> Hello,
>
> On Sat 08 Mar 2025 at 08:07am GMT, Stefan Kangas wrote:
>
>> I think you can use `kill-all-local-variables` for this:
>>
>>     (kill-all-local-variables 'kill-permanent)
>
> Oh, thanks, I never knew it could take an argument.
> I think the thing to do here then is add that to vc-log-internal-common.
> We're a long way from releasing Emacs 31 so if this does break something
> else, we'll find out.
>
> Installed the change and closing the bug.

While preparing a fix for #59457 I discovered that invoking vc-print-log
already makes a call to kill-all-local-variables, in vc-setup-buffer.
So calling it in vc-log-internal-common too isn't right.

In other words, the place to fix this is in vc-setup-buffer, which
already has special handling for default-directory.

I've replaced the fix with one in vc-setup-buffer, and also fixed #59457.

-- 
Sean Whitton

Subject: 29.0.50; Incorrect vc-parent-buffer-name on vc-change-log revert
From: Gabriel <[email-masked]>
To: [email-masked]
Date: Mon, 21 Nov 2022 17:37:59 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Description:

The *vc-change-log* buffer gets an incorrect value of
`vc-parent-buffer-name' on `revert-buffer'.

Steps:

1) emacs -Q (master "f176a36f4629b56c9fd9e3fc15aebd04a168c4f5")

2) Open some VC controlled file, e.g.: C-x C-f ~/git/emacs/README RET

3) Annotate the buffer: C-x v g

4) Show log revision at line: l

Result: *vc-change-log* buffer is displayed; the value of
`vc-parent-buffer-name', displayed on the right side of mode-line (see
`mode-line-format' and `mode-line-modes'), is correct (e.g.: " from
*Annotate README (rev f176a36f4629b56c9fd9e3fc15aebd04a168c4f5)*").

5) Revert the buffer: g

Result: the buffer is refreshed, but the value of
`vc-parent-buffer-name' is incorrectly set as " from *vc-change-log*".

---
Gabriel