Subject: bug#21555: 25.0.50; per-project *vc-change-log* buffers

From: Sean Whitton <[email-masked]>
Date: Fri, 14 Mar 2025 14:27:22 +0800

tag 21555 + moreinfo
thanks

Hello,

On Thu 24 Sep 2015 at 03:49pm -06, Tom Tromey wrote:

> I often work on several projects at once, using a *vc-dir* buffer for
> each.
>
> If I type "l" in this buffer, I get a *vc-change-log* buffer with the
> history of the project.
>
> However, all calls to vc-print-log use this same buffer.
> This seems to be hard-coded in vc.el (vc-print-log-internal).
>
> I would like to be able to make it so that each use of "l" from a
> *vc-dir* buffer gets its own *vc-change-log* buffer; and that "C-x v l"
> in some source file gets a separate buffer.  This way the per-project
> change-log buffers could be relatively long-lived; as it is recomputing
> the data in them takes much too long.

You can already do something similar by using C-x x u to rename the
*vc-change-log* buffer, and then 'g' inside it works to regenerate it.

This is how Emacs works with these special-mode buffers across the board
-- freely reuse them unless the user has renamed them out of the way of
the buffer's default name, in this case "*vc-change-log*".

Unlike compilation-mode buffers, *vc-change-log* buffers are already
adequately protected from re-use with just C-x x u.
I.e. the caveat in that command's docstring does not apply.

I think we would want VC to be consistent with the rest of Emacs, here,
rather than doing something special.
Therefore, I would be inclined to think anything cleverer is better left
to a command in the user's init.el, or an external package.

I'm tagging this as moreinfo for now in case Tom wants to come back, but
my inclination would be to close this.

-- 
Sean Whitton