Mercurial > emacs
changeset 14142:c9cb9dbb2d40
(vc-follow-symlinks): New variable.
(vc-find-file-hook): Use it.
author | André Spiegel <spiegel@gnu.org> |
---|---|
date | Wed, 10 Jan 1996 15:27:49 +0000 |
parents | dc502b9c237c |
children | bcc924fdb1f8 |
files | lisp/vc-hooks.el |
diffstat | 1 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/vc-hooks.el Wed Jan 10 15:24:03 1996 +0000 +++ b/lisp/vc-hooks.el Wed Jan 10 15:27:49 1996 +0000 @@ -65,6 +65,16 @@ "*If non-nil, backups of registered files are made as with other files. If nil (the default), files covered by version control don't get backups.") +(defvar vc-follow-symlinks 'ask + "*Indicates what to do if you visit a symbolic link to a file +that is under version control. Editing such a file through the +link bypasses the version control system, which is dangerous and +probably not what you want. + If this variable is t, VC follows the link and visits the real file, +telling you about it in the echo area. If it is `ask', VC asks for +confirmation whether it should follow the link. If nil, the link is +visited and a warning displayed.") + (defvar vc-display-status t "*If non-nil, display revision number and lock status in modeline. Otherwise, not displayed.") @@ -924,9 +934,22 @@ ((let* ((link (file-symlink-p buffer-file-name)) (link-type (and link (vc-backend link)))) (if link-type - (message - "Warning: symbolic link to %s-controlled source file" - link-type)))))))) + (cond ((eq vc-follow-symlinks nil) + (message + "Warning: symbolic link to %s-controlled source file" link-type)) + ((eq vc-follow-symlinks 'ask) + (if (yes-or-no-p (format + "Symbolic link to %s-controlled source file; follow link? " link-type)) + (progn (setq buffer-file-name + (file-truename buffer-file-name)) + (message "Followed link to %s" buffer-file-name) + (vc-find-file-hook)) + (message + "Warning: editing through the link bypasses version control") + )) + (t (setq buffer-file-name (file-truename buffer-file-name)) + (message "Followed link to %s" buffer-file-name) + (vc-find-file-hook)))))))))) (add-hook 'find-file-hooks 'vc-find-file-hook)