]> git.eshelyaron.com Git - emacs.git/commitdiff
Rename vc-dir-delete-files-no-vc to vc-dir-clean-files
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 14 Jul 2019 12:25:44 +0000 (14:25 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 14 Jul 2019 12:25:44 +0000 (14:25 +0200)
* doc/emacs/maintaining.texi (VC Directory Commands): Adjust
command name.

* lisp/vc/vc-dir.el (vc-dir-clean-files): Rename from
vc-dir-delete-files-no-vc, and work on unregistered files only
(bug#31732).
(vc-dir-menu-map): Adjust command name.

doc/emacs/maintaining.texi
etc/NEWS
lisp/vc/vc-dir.el

index 42ea4d3254da1279e520fa7c3c4d52f43987641d..c3895bffb5e7e43cc872e5bc6258fdaff605932a 100644 (file)
@@ -1354,7 +1354,7 @@ Branches}.
 
 @item d
 Delete the marked files, or the current file if no marks
-(@code{vc-dir-delete-files-no-vc)}.  The files will not be marked as
+(@code{vc-dir-clean-delete)}.  The files will not be marked as
 deleted in the version control system, so this function is mostly
 useful for unregistered files.
 @end table
index a36785a82b3f5f65adcc14cd19c59965c2a2d6d8..190509ff130fad7a989703cfb356109e731a9dc6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -694,7 +694,7 @@ print diffs and logs between the merge base (common ancestor) of two
 given revisions.
 
 +++
-*** The new `d' command (`vc-dir-delete-files-no-vc') in `vc-dir-mode'
+*** The new `d' command (`vc-dir-clean-files') in `vc-dir-mode'
 buffers will delete the marked files (or if no files are marked, the
 file under point).  This command does not notify the VC backend, and
 is mostly useful for unregistered files.
index 79f395c4822c0229df7597d70fbc56cae88d1496..436a0a67223c18b32b24eedb2ae751031474acea 100644 (file)
@@ -41,6 +41,7 @@
 (require 'vc)
 (require 'tool-bar)
 (require 'ewoc)
+(require 'seq)
 
 ;;; Code:
 (eval-when-compile (require 'cl-lib))
@@ -181,8 +182,8 @@ See `run-hooks'."
       '(menu-item "Open File" vc-dir-find-file
                  :help "Find the file on the current line"))
     (define-key map [delete]
-      '(menu-item "Delete" vc-dir-delete-files-no-vc
-                 :help "Delete the marked files"))
+      '(menu-item "Delete" vc-dir-clean-files
+                 :help "Delete the unregistered marked files"))
     (define-key map [sepvcdet] '("--"))
     ;; FIXME: This needs a key binding.  And maybe a better name
     ;; ("Insert" like PCL-CVS uses does not sound that great either)...
@@ -267,7 +268,7 @@ See `run-hooks'."
     ;;                                     bound by `special-mode'.
     ;; Marking.
     (define-key map "m" 'vc-dir-mark)
-    (define-key map "d" 'vc-dir-delete-files-no-vc)
+    (define-key map "d" 'vc-dir-clean-files)
     (define-key map "M" 'vc-dir-mark-all-files)
     (define-key map "u" 'vc-dir-unmark)
     (define-key map "U" 'vc-dir-unmark-all-files)
@@ -766,16 +767,24 @@ that share the same state."
   (interactive "e")
   (vc-dir-at-event e (vc-dir-mark-unmark 'vc-dir-toggle-mark-file)))
 
-(defun vc-dir-delete-files-no-vc ()
+(defun vc-dir-clean-files ()
   "Delete the marked files, or the current file if no marks.
 The files will not be marked as deleted in the version control
 system; see `vc-dir-delete-file'."
   (interactive)
-  (map-y-or-n-p "Delete %s? "
-                #'delete-file
-                (or (vc-dir-marked-files)
+  (let* ((files (or (vc-dir-marked-files)
                     (list (vc-dir-current-file))))
-  (revert-buffer))
+         (tracked
+          (seq-filter (lambda (file)
+                        (not (eq (vc-call-backend vc-dir-backend 'state file)
+                                 'unregistered)))
+                      files)))
+    (when tracked
+      (user-error "Trying to clean tracked file%s: %s"
+                  (if (= (length tracked) 1) "" "s")
+                  (mapconcat #'file-name-nondirectory tracked ", ")))
+    (map-y-or-n-p "Delete %s? " #'delete-file files)
+    (revert-buffer)))
 
 (defun vc-dir-delete-file ()
   "Delete the marked files, or the current file if no marks.