aboutsummaryrefslogtreecommitdiff
path: root/lisp/magit-gitignore.el
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2019-03-04 20:34:42 +0100
committerJonas Bernoulli <jonas@bernoul.li>2019-03-04 20:35:24 +0100
commitffb1dc40f47d76e459a0f65c7ea7d0000dc20134 (patch)
tree3c42ba03ebd315b047a81ca19f0eb4b853f1caaa /lisp/magit-gitignore.el
parentb86e556c01670c620fa3d2c8fad823e4424fe46c (diff)
magit-{,no-}skip-worktree: New commands
Closes #3710.
Diffstat (limited to 'lisp/magit-gitignore.el')
-rw-r--r--lisp/magit-gitignore.el29
1 files changed, 27 insertions, 2 deletions
diff --git a/lisp/magit-gitignore.el b/lisp/magit-gitignore.el
index 47492e7..8578ae4 100644
--- a/lisp/magit-gitignore.el
+++ b/lisp/magit-gitignore.el
@@ -32,7 +32,7 @@
(require 'magit)
-;;; Commands
+;;; Transient
;;;###autoload (autoload 'magit-gitignore "magit-gitignore" nil t)
(define-transient-command magit-gitignore ()
@@ -49,7 +49,12 @@
:if (lambda () (magit-get "core.excludesfile"))
:description (lambda ()
(format "privately for all repositories (%s)"
- (magit-get "core.excludesfile"))))])
+ (magit-get "core.excludesfile"))))]
+ ["Skip worktree"
+ (7 "w" "do skip worktree" magit-skip-worktree)
+ (7 "W" "do not skip worktree" magit-no-skip-worktree)])
+
+;;; Gitignore Commands
;;;###autoload
(defun magit-gitignore-in-topdir (rule)
@@ -125,6 +130,26 @@ Rules that are defined in that file affect all local repositories."
(magit-completing-read "File or pattern to ignore"
choices nil nil nil nil default)))
+;;; Skip Worktree Commands
+
+;;;###autoload
+(defun magit-skip-worktree (file)
+ "Call \"git update-index --skip-worktree FILE\"."
+ (interactive (list (magit-read-file-choice "Skip worktree for: "
+ (cl-set-difference
+ (magit-list-files)
+ (magit-skip-worktree-files)))))
+ (magit-with-toplevel
+ (magit-run-git "update-index" "--skip-worktree" "--" file)))
+
+;;;###autoload
+(defun magit-no-skip-worktree (file)
+ "Call \"git update-index --no-skip-worktree FILE\"."
+ (interactive (list (magit-read-file-choice "Do not skip worktree for: "
+ (magit-skip-worktree-files))))
+ (magit-with-toplevel
+ (magit-run-git "update-index" "--no-skip-worktree" "--" file)))
+
;;; _
(provide 'magit-gitignore)
;;; magit-gitignore.el ends here