Function: vc-arch-working-revision
vc-arch-working-revision is a byte-compiled function defined in
vc-arch.el.gz.
Signature
(vc-arch-working-revision FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/obsolete/vc-arch.el.gz
(defun vc-arch-working-revision (file)
(let* ((root (expand-file-name "{arch}" (vc-arch-root file)))
(defbranch (vc-arch-default-version file)))
(when (and defbranch (string-match "\\`\\(.+@[^/\n]+\\)/\\(\\(\\(.*?\\)\\(?:--.*\\)?\\)--.*\\)\\'" defbranch))
(let* ((archive (match-string 1 defbranch))
(category (match-string 4 defbranch))
(branch (match-string 3 defbranch))
(version (match-string 2 defbranch))
(sealed nil) (rev-nb 0)
(rev nil)
logdir tmp)
(setq logdir (expand-file-name category root))
(setq logdir (expand-file-name branch logdir))
(setq logdir (expand-file-name version logdir))
(setq logdir (expand-file-name archive logdir))
(setq logdir (expand-file-name "patch-log" logdir))
(dolist (file (if (file-directory-p logdir) (directory-files logdir)))
;; Revision names go: base-0, patch-N, version-0, versionfix-M.
(when (and (eq (aref file 0) ?v) (not sealed))
(setq sealed t rev-nb 0))
(if (and (string-match "-\\([0-9]+\\)\\'" file)
(setq tmp (string-to-number (match-string 1 file)))
(or (not sealed) (eq (aref file 0) ?v))
(>= tmp rev-nb))
(setq rev-nb tmp rev file)))
;; Use "none-000" if the tree hasn't yet been committed on the
;; default branch. We'll then get "Arch:000[branch]" on the mode-line.
(concat defbranch "--" (or rev "none-000"))))))