Function: vc-dir-clean-files
vc-dir-clean-files is an interactive and byte-compiled function
defined in vc-dir.el.gz.
Signature
(vc-dir-clean-files)
Documentation
Delete marked files from repository, or the current file if no marks.
This command cleans unregistered files from the repository.
(To delete files that are registered, use vc-dir-delete-file instead.)
It is therefore an error to use this command to delete files that are
tracked by a VCS.
Probably introduced at or before Emacs version 27.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-dir.el.gz
(defun vc-dir-clean-files ()
"Delete marked files from repository, or the current file if no marks.
This command cleans unregistered files from the repository.
(To delete files that are registered, use `vc-dir-delete-file' instead.)
It is therefore an error to use this command to delete files that are
tracked by a VCS."
(interactive)
(let* ((files (or (vc-dir-marked-files)
(list (vc-dir-current-file))))
(tracked
(seq-filter (lambda (file)
(not (eq (vc-call-backend vc-dir-backend 'state file)
'unregistered)))
files)))
(when tracked
(user-error (ngettext "Cannot clean tracked file: %s"
"Cannot clean tracked files: %s"
(length tracked))
(mapconcat #'file-name-nondirectory tracked ", ")))
(map-y-or-n-p "Delete %s? " #'delete-file files)
(revert-buffer)))