Subject: bug#46151: 28.0.50; Set revert-buffer-function in shell command output buffers

From: Dmitry Gutov <[email-masked]>
Date: Thu, 4 Feb 2021 00:46:44 +0200

On 03.02.2021 20:36, Lars Ingebrigtsen wrote:

>> I think it's a nice property that major modes that have this binding
>> implement some special behavior for reverting. And all that do, have
>> this binding.
>>
>> But now, if a global binding is added, I worry that people might
>> abandon that convention.
> 
> I don't think modes will stop creating reversion functions, and I think
> special modes will continue to bind `g' -- it's more convenient than
> `C-x g', after all.  So I don't think this is much to worry about.

I hope so.

OTOH, I think it might seem perfectly reasonable for some future 
maintainer to stop that practice because, after all, a handy global 
binding already exists.

For example, this bug can be considered only halfway fixed for anyone 
who uses 'C-x g' for other purposes. It's not a big deal in one 
instance, only as part of a possible future trend.

>>> But I disagree that it's not a useful general command for non-power
>>> users: A common question is "how do I reload a file?", and we didn't
>>> have a key binding for that.  `C-x C-f' does not reliably reload a file,
>>> since it has DWIM stuff going on.
>>
>> Isn't the answer to most such questions, 'enable global-auto-revert-mode'?
> 
> No, I think `global-auto-revert-mode' is something most people don't
> want.  For instance, if you're looking at /var/log/exim4/mainlog in
> Emacs (which I do sometimes), you do not want that to be reloaded all
> the time, because that would make it difficult to get any work done in
> that buffer.  But you do want to reload it occasionally.

Avoiding a feature that saves people time on account of certain rare 
buffers being more difficult seems counter-productive. It's like giving 
up on automatic transmission on account of the existence of hills.

Even if somebody doesn't want to use auto-revert is all buffers, 
toggling auto-revert-mode on only in certain ones is bound to save them 
time. Or people can explicitly disable the mode in certain buffers, like 
ones showing log files. Does 'exim4/mainlog' have a dedicated major 
mode? It can go in global-auto-revert-ignore-modes.

I can understand calling revert-buffer manually if you're editing a few 
files, but if you're working on a larger project and switch to a 
different Git branch with multiple buffers open, that's unmanageable.

Almost all editors I used have this feature on by default (except Vim, I 
guess?), so there is a consensus there.

>> I do revert buffers explicitly from time to time too (especially when
>> developing or debugging certain Elisp packages), but still not often
>> enough to worry about having to type 'M-x revert-buffer'.
> 
> I do it quite often (both in the log file case and because I apply
> patches a lot).

FWIW, I apply patches with diff-mode.