Subject: bug#8927: 24.0.50; Flaw in C-x v u

From: Dan Nicolaescu <[email-masked]>
Date: Sun, 26 Jun 2011 01:38:55 -0400

Chong Yidong <[email-masked]> writes:

> Richard Stallman <[email-masked]> writes:
>
>>     Anyway, that's why it kills your *vc-diff* buffer - because it assumes
>>     it has just created it. The fix for your problem would presumably be for
>>     vc-revert to only kill the buffer if it did not exist beforehand.
>>
>> C-x v u should preserve the previous contents of *vc-diff*.
>
> I've checked in a fix to avoid clobbering an existing vc-diff buffer
> when vc-revert shows a diff temporarily.
>
> I agree with Glenn, though, that showing a vc-diff buffer for this
> operation is not a good idea.  Apart from the problems he mentioned, the
> diff is not useful anyway, since there is no way to scroll the window
> during the yes-nor-no prompt.  I added a new option vc-revert-show-diff
> to control whether vc-revert should show a diff, and made it default to
> nil.

I strongly disagree with this change of a long standing behavior.
Showing the diff is an good visual aid in checking that the user indeed
intends to revert that file.  It's not that hard to type C-x v u in the
wrong window if one has many windows opened, and the files have similar
names.  
C-x v u is destructive, it's easy to lose data, so it seems that it
would be much better to err on the side of caution.

Can't RMS' original complaint be solved by making vc-revert use a 
*vc revert diff* buffer instead of just *vc diff*?