New git-timemachine UI based on ivy-mode
git-timemachine UI based on ivy-mode :en:emacs:ivy:git:timemachine:
When using git-timemachine, I prefer start from my selected revision instead of HEAD.
Here is my code based on ivy-mode,
(defun my-git-timemachine-show-selected-revision () "Show last (current) revision of file." (interactive) (let* ((collection (mapcar (lambda (rev) ;; re-shape list for the ivy-read (cons (concat (substring-no-properties (nth 0 rev) 0 7) "|" (nth 5 rev) "|" (nth 6 rev)) rev)) (git-timemachine--revisions)))) (ivy-read "commits:" collection :action (lambda (rev) ;; compatible with ivy 9+ and ivy 8 (unless (string-match-p "^[a-z0-9]*$" (car rev)) (setq rev (cdr rev))) (git-timemachine-show-revision rev))))) (defun my-git-timemachine () "Open git snapshot with the selected version. Based on ivy-mode." (interactive) (unless (featurep 'git-timemachine) (require 'git-timemachine)) (git-timemachine--start #'my-git-timemachine-show-selected-revision))