Function: vc-arch-trim-revlib

vc-arch-trim-revlib is an interactive and byte-compiled function defined in vc-arch.el.gz.

Signature

(vc-arch-trim-revlib)

Documentation

Delete half of the revisions in the revision library.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/obsolete/vc-arch.el.gz
(defun vc-arch-trim-revlib ()
  "Delete half of the revisions in the revision library."
  (interactive)
  (let ((rl-dir (with-output-to-string
                  (call-process vc-arch-program nil standard-output nil
                                "my-revision-library"))))
    (while (string-match "\\(.*\\)\n" rl-dir)
      (let ((dir (match-string 1 rl-dir)))
        (setq rl-dir
              (if (and (file-directory-p dir) (file-writable-p dir))
                  dir
                (substring rl-dir (match-end 0))))))
    (unless (file-writable-p rl-dir)
      (error "No writable revlib directory found"))
    (message "Revlib at %s" rl-dir)
    (let* ((archives (directory-files rl-dir 'full
                                      directory-files-no-dot-files-regexp))
           (categories
            (apply #'append
                   (mapcar (lambda (dir)
                             (when (file-directory-p dir)
                               (directory-files
                                dir 'full directory-files-no-dot-files-regexp)))
                           archives)))
           (branches
            (apply #'append
                   (mapcar (lambda (dir)
                             (when (file-directory-p dir)
                               (directory-files
                                dir 'full directory-files-no-dot-files-regexp)))
                           categories)))
           (versions
            (apply #'append
                   (mapcar (lambda (dir)
                             (when (file-directory-p dir)
                               (directory-files dir 'full "--.*--")))
                           branches))))
      (mapc #'vc-arch-trim-one-revlib versions))
    ))