summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-07-10 14:12:03 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-07-11 18:37:33 -0700
commit649e2ec44d7dec312f322393526218c04bad3793 (patch)
treeffdee2e353331960fcc031ab30715fe2f5e6cda8
parent7653e6b00c8556869499d85e5f877110eb9b2c65 (diff)
downloaddotfiles-649e2ec44d7dec312f322393526218c04bad3793.tar.gz
show a reflog diff after finishing certain Magit git rebases
This is like my 'rld' shell alias.
-rw-r--r--.emacs.d/init.el16
1 files changed, 15 insertions, 1 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 75a1f070..ae9a2e03 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -3182,10 +3182,24 @@ mutt's review view, after exiting EDITOR."
;;;; Assorted packages
+(defun spw/magit-rebase-show-diff (&rest _ignore)
+ (add-hook 'magit-post-refresh-hook #'spw/magit-rebase-show-diff-1))
+
+(defun spw/magit-rebase-show-diff-1 ()
+ (unless (magit-rebase-in-progress-p)
+ (remove-hook 'magit-post-refresh-hook #'spw/magit-rebase-show-diff-1)
+ (save-selected-window
+ (magit-diff-range "@{1}..@{0}")
+ (magit-set-header-line-format "Changes made by rebase"))))
+
(spw/when-library-available magit
;; Ensure we add magit to project-prefix-map and project-switch-commands as
;; soon as a project.el command is invoked.
- (eval-after-load 'project '(require 'magit)))
+ (eval-after-load 'project '(require 'magit))
+
+ (dolist (f '(magit-rebase-interactive magit-rebase-edit-commit
+ magit-rebase-remove-commit magit-rebase-autosquash))
+ (advice-add f :before #'spw/magit-rebase-show-diff)))
(global-set-key "\C-cgg" #'magit-file-dispatch)