Function: vc-default-revert

vc-default-revert is a byte-compiled function defined in vc.el.gz.

Signature

(vc-default-revert BACKEND FILE CONTENTS-DONE)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc.el.gz
(defun vc-default-revert (backend file contents-done)
  (unless contents-done
    (let ((rev (vc-symbolic-working-revision file))
          (file-buffer (or (get-file-buffer file) (current-buffer))))
      (message "Checking out %s..." file)
      (let ((failed t)
            (backup-name (when (file-exists-p file)
                           (car (find-backup-file-name file)))))
        (when backup-name
          (copy-file file backup-name 'ok-if-already-exists 'keep-date)
          (unless (file-writable-p file)
            (set-file-modes file (logior (file-modes file) 128))))
        (unwind-protect
            (let ((coding-system-for-read 'no-conversion)
                  (coding-system-for-write 'no-conversion))
              (with-temp-file file
                (let ((outbuf (current-buffer)))
                  ;; Change buffer to get local value of vc-checkout-switches.
                  (with-current-buffer file-buffer
                    (let ((default-directory (file-name-directory file)))
                      (vc-call-backend backend 'find-revision
                                       file rev outbuf)))))
              (setq failed nil))
          (when backup-name
            (if failed
                (rename-file backup-name file 'ok-if-already-exists)
              (and (not vc-make-backup-files) (delete-file backup-name))))))
      (message "Checking out %s...done" file))))