branch: elpa/magit
commit 98ef10703708d908f8ec9592c3d3b6277465487f
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>

    Remove magit-wip-after-save-local-mode
    
    Only keep the global `magit-wip-after-save-mode'.
---
 lisp/magit-mode.el |  7 +++---
 lisp/magit-wip.el  | 66 ++++++++++--------------------------------------------
 2 files changed, 15 insertions(+), 58 deletions(-)

diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index f70d1db7784..1d0634687b9 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -47,7 +47,7 @@
 (declare-function elp-restore-all "elp" ())
 
 (defvar magit--wip-inhibit-autosave)
-(defvar magit-wip-after-save-local-mode)
+(defvar magit-wip-after-save-mode)
 (declare-function magit-wip-get-ref "magit-wip" ())
 (declare-function magit-wip-commit-worktree "magit-wip" (ref files msg))
 
@@ -1322,8 +1322,7 @@ argument (the prefix) non-nil means save all with no 
questions."
                     (setq magit-inhibit-refresh-save t))
                  "to skip the current buffer and remember choice")
              ,@save-some-buffers-action-alist))
-          ;; Create a single wip commit for all saved files, for
-          ;; which `magit-wip-after-save-local-mode' is enabled.
+          ;; Create a single wip commit for all saved files.
           (magit--wip-inhibit-autosave t)
           (saved nil))
       (unwind-protect
@@ -1332,7 +1331,7 @@ argument (the prefix) non-nil means save all with no 
questions."
            (lambda ()
              (and (funcall magit-save-repository-buffers-predicate topdir)
                   (prog1 t
-                    (when magit-wip-after-save-local-mode
+                    (when magit-wip-after-save-mode
                       (push (expand-file-name buffer-file-name) saved))))))
         (when saved
           (let ((default-directory topdir))
diff --git a/lisp/magit-wip.el b/lisp/magit-wip.el
index b42fdd365ee..6fd24ce12ad 100644
--- a/lisp/magit-wip.el
+++ b/lisp/magit-wip.el
@@ -74,7 +74,6 @@ is used as `branch-ref'."
 
 ;;; Modes
 
-(defvar magit--wip-activation-cache nil)
 (defvar magit--wip-inhibit-autosave nil)
 
 ;;;###autoload
@@ -93,64 +92,20 @@ but that is discouraged."
   :lighter magit-wip-mode-lighter
   :global t
   (let ((arg (if magit-wip-mode 1 -1)))
-    (let ((magit--wip-activation-cache (list t)))
-      (magit-wip-after-save-mode arg))
+    (magit-wip-after-save-mode arg)
     (magit-wip-after-apply-mode arg)
     (magit-wip-before-change-mode arg)
     (magit-wip-initial-backup-mode arg)))
 
-(define-minor-mode magit-wip-after-save-local-mode
-  "After saving, also commit to a worktree work-in-progress ref.
-
-After saving the current file-visiting buffer this mode also
-commits the changes to the worktree work-in-progress ref for
-the current branch.
-
-This mode should be enabled globally by turning on the globalized
-variant `magit-wip-after-save-mode'."
-  :package-version '(magit . "2.1.0")
-  (if magit-wip-after-save-local-mode
-      (if (and buffer-file-name (magit-inside-worktree-p t))
-          (add-hook 'after-save-hook #'magit-wip-commit-buffer-file t t)
-        (setq magit-wip-after-save-local-mode nil)
-        (user-error "Need a worktree and a file"))
-    (remove-hook 'after-save-hook #'magit-wip-commit-buffer-file t)))
-
-(defun magit-wip-after-save-local-mode-turn-on ()
-  (when (cond-let
-          ((not buffer-file-name)
-           nil)
-          ((not magit--wip-activation-cache)
-           (and (magit-inside-worktree-p t)
-                (magit-file-tracked-p buffer-file-name)))
-          ([elt (assoc default-directory
-                       magit--wip-activation-cache)]
-           (and-let ((top (cadr elt)))
-             (member (file-relative-name buffer-file-name top)
-                     (cddr elt))))
-          ([top (magit-toplevel)]
-           (let (files)
-             (if-let ((elt (assoc top magit--wip-activation-cache)))
-                 (setq files (cddr elt))
-               (setq files (let ((default-directory top))
-                             (magit-tracked-files)))
-               (push `(,top ,top ,@files)
-                     magit--wip-activation-cache)
-               (unless (eq default-directory top)
-                 (push `(,default-directory ,top ,@files)
-                       magit--wip-activation-cache)))
-             (member (file-relative-name buffer-file-name) files)))
-          (t
-           (push (list default-directory nil)
-                 magit--wip-activation-cache)
-           nil))
-    (magit-wip-after-save-local-mode)))
-
 ;;;###autoload
-(define-globalized-minor-mode magit-wip-after-save-mode
-  magit-wip-after-save-local-mode magit-wip-after-save-local-mode-turn-on
+(define-minor-mode magit-wip-after-save-mode
+  "Commit to work-in-progress refs when saving file-visiting buffers."
   :package-version '(magit . "2.1.0")
-  :group 'magit-wip)
+  :group 'magit-wip
+  :global t
+  (if magit-wip-after-save-mode
+      (add-hook  'after-save-hook #'magit-wip-commit-buffer-file 90)
+    (remove-hook 'after-save-hook #'magit-wip-commit-buffer-file)))
 
 (defun magit-wip-commit-buffer-file (&optional msg)
   "Commit visited file to a worktree work-in-progress ref.
@@ -158,7 +113,10 @@ variant `magit-wip-after-save-mode'."
 Also see `magit-wip-after-save-mode' which calls this function
 automatically whenever a buffer visiting a tracked file is saved."
   (interactive (list "wip-save %s after save"))
-  (when-let ((_(not magit--wip-inhibit-autosave))
+  (when-let ((_(and (not magit--wip-inhibit-autosave)
+                    buffer-file-name
+                    (magit-inside-worktree-p t)
+                    (magit-file-tracked-p buffer-file-name)))
              (ref (magit-wip-get-ref)))
     (magit-with-toplevel
       (let ((file (file-relative-name buffer-file-name)))

Reply via email to