]> git.eshelyaron.com Git - emacs.git/commitdiff
Add a new command in vc-dir mode to delete files
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 13 Jul 2019 04:10:29 +0000 (06:10 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 13 Jul 2019 04:10:29 +0000 (06:10 +0200)
* doc/emacs/maintaining.texi (VC Directory Commands): Document it.

* lisp/vc/vc-dir.el (vc-dir-delete-files-no-vc): New command and
keystroke (bug#31732).

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

index 4986c1110309e07599da9a7e922b9011d64f4df1..42ea4d3254da1279e520fa7c3c4d52f43987641d 100644 (file)
@@ -1349,7 +1349,14 @@ Prompt for the name of a branch and display the change history of that
 branch (@code{vc-print-branch-log}).
 
 @item B s
-Switch to a branch (@code{vc-retrieve-tag}).  @xref{Switching Branches}.
+Switch to a branch (@code{vc-retrieve-tag}).  @xref{Switching
+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
+deleted in the version control system, so this function is mostly
+useful for unregistered files.
 @end table
 
 @cindex stashes in version control
index 902203f0c339bd6f9713b03103ca3ce397a8e101..7ff2b42bdab6b13652679c2adcc8d57cc2ff59f1 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -690,6 +690,11 @@ to Hg revert.
 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'
+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.
+
 ** Diff mode
 +++
 *** Hunks are now automatically refined by font-lock.
index be1084d4abe4f1c73136758694bc46d8ebe53e90..79f395c4822c0229df7597d70fbc56cae88d1496 100644 (file)
@@ -180,6 +180,9 @@ See `run-hooks'."
     (define-key map [open]
       '(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"))
     (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)...
@@ -264,6 +267,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 "M" 'vc-dir-mark-all-files)
     (define-key map "u" 'vc-dir-unmark)
     (define-key map "U" 'vc-dir-unmark-all-files)
@@ -762,8 +766,21 @@ 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 ()
+  "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)
+                    (list (vc-dir-current-file))))
+  (revert-buffer))
+
 (defun vc-dir-delete-file ()
-  "Delete the marked files, or the current file if no marks."
+  "Delete the marked files, or the current file if no marks.
+The files will also be marked as deleted in the version control
+system."
   (interactive)
   (mapc 'vc-delete-file (or (vc-dir-marked-files)
                             (list (vc-dir-current-file)))))