Function: vc-arch-diff
vc-arch-diff is a byte-compiled function defined in vc-arch.el.gz.
Signature
(vc-arch-diff FILES &optional OLDVERS NEWVERS BUFFER ASYNC)
Documentation
Get a difference report using Arch between two versions of FILES.
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/vc-arch.el.gz
(defun vc-arch-diff (files &optional oldvers newvers buffer async)
"Get a difference report using Arch between two versions of FILES."
;; FIXME: This implementation only works for singleton filesets. To make
;; it work for more cases, we have to either call `file-diffs' manually on
;; each and every `file' in the fileset, or use `changes --diffs' (and
;; variants) and maybe filter the output with `filterdiff' to only include
;; the files in which we're interested.
(let ((file (car files)))
(if (and newvers
(vc-up-to-date-p file)
(equal newvers (vc-working-revision file)))
;; Newvers is the base revision and the current file is unchanged,
;; so we can diff with the current file.
(setq newvers nil))
(if newvers
(error "Diffing specific revisions not implemented")
(let* (process-file-side-effects
;; Run the command from the root dir.
(default-directory (vc-arch-root file))
(status
(vc-arch-command
(or buffer "*vc-diff*")
(if async 'async 1)
nil "file-diffs"
(vc-switches 'Arch 'diff)
(file-relative-name file)
(if (equal oldvers (vc-working-revision file))
nil
oldvers))))
(if async 1 status))))) ; async diff, pessimistic assumption.