Function: vc-ensure-vc-buffer
vc-ensure-vc-buffer is a byte-compiled function defined in vc.el.gz.
Signature
(vc-ensure-vc-buffer)
Documentation
Make sure that the current buffer visits a version-controlled file.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
(defun vc-ensure-vc-buffer ()
"Make sure that the current buffer visits a version-controlled file."
(cond
((derived-mode-p 'vc-dir-mode)
(set-buffer (find-file-noselect (vc-dir-current-file))))
((derived-mode-p 'dired-mode)
(set-buffer (find-file-noselect (dired-get-filename))))
(t
(while (and vc-parent-buffer
(buffer-live-p vc-parent-buffer)
;; Avoid infinite looping when vc-parent-buffer and
;; current buffer are the same buffer.
(not (eq vc-parent-buffer (current-buffer))))
(set-buffer vc-parent-buffer))))
(if (not buffer-file-name)
(error "Buffer %s is not associated with a file" (buffer-name))
(unless (vc-backend buffer-file-name)
(error "File %s is not under version control" buffer-file-name))))