523 |
1 ;; async diff, pessimistic assumption |
1 ;; async diff, pessimistic assumption |
524 |
status)))) |
status)))) |
525 |
|
|
526 |
|
(defun vc-cvs-diff-tree (dir &optional rev1 rev2) |
527 |
|
"Diff all files at and below DIR." |
528 |
|
(with-current-buffer "*vc-diff*" |
529 |
|
(setq default-directory dir) |
530 |
|
(if (vc-cvs-stay-local-p dir) |
531 |
|
;; local diff: do it filewise, and only for files that are modified |
532 |
|
(vc-file-tree-walk |
533 |
|
dir |
534 |
|
(lambda (f) |
535 |
|
(vc-exec-after |
536 |
|
`(let ((coding-system-for-read (vc-coding-system-for-diff ',f))) |
537 |
|
;; possible optimization: fetch the state of all files |
538 |
|
;; in the tree via vc-cvs-dir-state-heuristic |
539 |
|
(unless (vc-up-to-date-p ',f) |
540 |
|
(message "Looking at %s" ',f) |
541 |
|
(vc-diff-internal ',f ',rel1 ',rel2)))))) |
542 |
|
;; cvs diff: use a single call for the entire tree |
543 |
|
(let ((coding-system-for-read |
544 |
|
(or coding-system-for-read 'undecided))) |
545 |
|
(apply 'vc-do-command "*vc-diff*" 1 "cvs" nil "diff" |
546 |
|
(and rel1 (concat "-r" rel1)) |
547 |
|
(and rel2 (concat "-r" rel2)) |
548 |
|
(vc-diff-switches-list cvs)))))) |
549 |
|
|
550 |
(defun vc-cvs-annotate-command (file buffer &optional version) |
(defun vc-cvs-annotate-command (file buffer &optional version) |
551 |
"Execute \"cvs annotate\" on FILE, inserting the contents in BUFFER. |
"Execute \"cvs annotate\" on FILE, inserting the contents in BUFFER. |
552 |
Optional arg VERSION is a version to annotate from." |
Optional arg VERSION is a version to annotate from." |