changeset 94540:55cb4c49dc98

The day wehen vc-toggle-ready-only was a good idea is long gone.
author Eric S. Raymond <esr@snark.thyrsus.com>
date Fri, 02 May 2008 07:12:59 +0000
parents fee32a11924d
children 8da676e385e1
files lisp/ChangeLog lisp/vc-hooks.el
diffstat 2 files changed, 12 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri May 02 06:56:59 2008 +0000
+++ b/lisp/ChangeLog	Fri May 02 07:12:59 2008 +0000
@@ -4,6 +4,9 @@
 	to prettify-state-info, in preparation for ripping out dired mode.
 	* vc-bzr.el (vc-bzr-dired-state-info): Change name of primitive
 	to prettify-state-info, in preparation for ripping out dired mode.
+	* vc-hooks.el (vc-toggle-read-only): Throw an error when a user 
+	tries this on a version-controlled buffer. it will do useless or 
+	actively bad things on any version control system newer than RCS.
 
 2008-05-02  Dan Nicolaescu  <dann@ics.uci.edu>
 
--- a/lisp/vc-hooks.el	Fri May 02 06:56:59 2008 +0000
+++ b/lisp/vc-hooks.el	Fri May 02 07:12:59 2008 +0000
@@ -679,19 +679,17 @@
   "Change read-only status of current buffer, perhaps via version control.
 
 If the buffer is visiting a file registered with version control,
-then check the file in or out.  Otherwise, just change the read-only flag
-of the buffer.
-With prefix argument, ask for version number to check in or check out.
-Check-out of a specified version number does not lock the file;
-to do that, use this command a second time with no argument.
+throw an error, because this is not a safe or really meaningful operation 
+on any version-control system newer than RCS.  
+
+Otherwise, just change the read-only flag of the buffer.
 
-If you bind this function to \\[toggle-read-only], then Emacs checks files
-in or out whenever you toggle the read-only flag."
+If you bind this function to \\[toggle-read-only], then Emacs
+will properly intercept all attempts to toggle the read-only flag
+on version-controlled buffer."
   (interactive "P")
-  (if (or (and (boundp 'vc-dired-mode) vc-dired-mode)
-	  ;; use boundp because vc.el might not be loaded
-	  (vc-backend buffer-file-name))
-      (vc-next-action verbose)
+  (if (vc-backend buffer-file-name)
+      (error "Toggling the readability of a version controlled file is likely to wreak havoc.")
     (toggle-read-only)))
 
 (defun vc-default-make-version-backups-p (backend file)