Function: vc-dir-deduce-fileset

vc-dir-deduce-fileset is a byte-compiled function defined in vc-dir.el.gz.

Signature

(vc-dir-deduce-fileset &optional STATE-MODEL-ONLY-FILES)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defun vc-dir-deduce-fileset (&optional state-model-only-files)
  (let ((marked (vc-dir-marked-files))
	files
	only-files-list
	state
	model)
    (if marked
	(progn
	  (setq files marked)
	  (when state-model-only-files
	    (setq only-files-list (vc-dir-marked-only-files-and-states))))
      (let ((crt (vc-dir-current-file)))
	(setq files (list crt))
	(when state-model-only-files
	  (setq only-files-list (vc-dir-child-files-and-states)))))

    (when state-model-only-files
      (setq state (cdar only-files-list))
      ;; Check that all files are in a consistent state, since we use that
      ;; state to decide which operation to perform.
      (dolist (crt (cdr only-files-list))
	(unless (vc-compatible-state (cdr crt) state)
	  (error "When applying VC operations to multiple files, the files are required\nto  be in similar VC states.\n%s in state %s clashes with %s in state %s"
		 (car crt) (cdr crt) (caar only-files-list) state)))
      (setq only-files-list (mapcar #'car only-files-list))
      (when (and state (not (eq state 'unregistered)))
	(setq model (vc-checkout-model vc-dir-backend only-files-list))))
    (list vc-dir-backend files only-files-list state model)))