Function: vc-cvs-retrieve-tag
vc-cvs-retrieve-tag is a byte-compiled function defined in
vc-cvs.el.gz.
Signature
(vc-cvs-retrieve-tag DIR NAME UPDATE)
Documentation
Retrieve a tag at and below DIR.
NAME is the name of the tag; if it is empty, do a cvs update.
If UPDATE is non-nil, then update (resynch) any affected buffers.
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-cvs.el.gz
(defun vc-cvs-retrieve-tag (dir name update)
"Retrieve a tag at and below DIR.
NAME is the name of the tag; if it is empty, do a `cvs update'.
If UPDATE is non-nil, then update (resynch) any affected buffers."
(with-current-buffer (get-buffer-create "*vc*")
(let ((default-directory dir)
(sticky-tag))
(erase-buffer)
(if (or (not name) (string= name ""))
(vc-cvs-command t 0 nil "update")
(vc-cvs-command t 0 nil "update" "-r" name)
(setq sticky-tag name))
(when update
(goto-char (point-min))
(while (not (eobp))
(if (looking-at "\\([CMUP]\\) \\(.*\\)")
(let* ((file (expand-file-name (match-string 2) dir))
(state (match-string 1))
(buffer (find-buffer-visiting file)))
(when buffer
(cond
((or (string= state "U")
(string= state "P"))
(vc-file-setprop file 'vc-state 'up-to-date)
(vc-file-setprop file 'vc-working-revision nil)
(vc-file-setprop file 'vc-checkout-time
(file-attribute-modification-time
(file-attributes file))))
((or (string= state "M")
(string= state "C"))
(vc-file-setprop file 'vc-state 'edited)
(vc-file-setprop file 'vc-working-revision nil)
(vc-file-setprop file 'vc-checkout-time 0)))
(vc-file-setprop file 'vc-cvs-sticky-tag sticky-tag)
(vc-resynch-buffer file t t))))
(forward-line 1))))))