From 4ad9b764e140b7e48a4b8f2d3a431756a53b0290 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 15 Aug 2020 12:25:34 -0400 Subject: [PATCH] tools/magit: only expand git path On closer inspection it isn't necessary to expand the gitk and perl executable paths, since a) gitk is a GUI application that doesn't get called often enough (only once at a time) to warrant being optimized, and b) magit uses it to set an envvar for git (so git itself handles locating the executable internally -- much faster than Emacs can (esp over TRAMP), so it only benefits us to expand magit-git-executable. --- modules/tools/magit/config.el | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index 2a4c950a9..d3b971b68 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -104,16 +104,14 @@ For example, diffs and log buffers. Accepts `left', `right', `up', and `down'.") (define-key transient-map [escape] #'transient-quit-one) ;; An optimization that particularly affects macOS and Windows users: by - ;; resolving `magit-git-executable' (and others) Emacs does less work to find - ;; the executable in your PATH, which is great because it is called so - ;; frequently. However, absolute paths will break magit in TRAMP/remote - ;; projects if the git executable isn't in the exact same location. + ;; resolving `magit-git-executable' Emacs does less work to find the + ;; executable in your PATH, which is great because it is called so frequently. + ;; However, absolute paths will break magit in TRAMP/remote projects if the + ;; git executable isn't in the exact same location. (add-hook! 'magit-status-mode-hook (defun +magit-optimize-process-calls-h () - (dolist (sym '(magit-git-executable magit-perl-executable magit-gitk-executable)) - (when-let* ((exe (symbol-value sym)) - (path (executable-find exe))) - (set (make-local-variable sym) path)))))) + (when-let (path (executable-find magit-git-executable)) + (setq-local magit-git-executable path))))) (use-package! forge