diff options
| -rw-r--r-- | .emacs | 29 |
1 files changed, 11 insertions, 18 deletions
@@ -260,28 +260,21 @@ ((derived-mode-p 'magit-mode) (magit-branch-or-commit-at-point)))) -(eval-when-compile - ;; Load rx's pcase pattern. - (require 'rx)) - -(defun my/action-stamp-at-point (rev) +(defun my/describe-revision (rev) + "Format a Git revision in a format suitable for changelogs." (interactive (list (let* ((rev (my/revision-at-point)) - (prompt (if rev (format "Revision? (%s) " rev) "Revision? "))) + (prompt (format-prompt "Revision" rev))) (read-string prompt nil nil rev)))) - (let* ((cmd "git show --no-patch --date=unix --format='%ad!%ae'") - (git-info (shell-command-to-string (format "%s %s" cmd rev)))) - (pcase git-info - ((rx (let timestamp-str (+ digit)) - "!" - (let mail (+ anychar)) - "\n") - (let* ((timestamp (string-to-number timestamp-str)) - (date (format-time-string "%FT%TZ" timestamp t)) - (action-stamp (format "%s!%s" date mail))) - (kill-new action-stamp) - (message action-stamp)))))) + (let* ((rev-fmt "%cd \"%s\" (%h)") + (desc + (string-trim + (shell-command-to-string + (format "git show --no-patch --date=short --format='%s' %s" + rev-fmt rev))))) + (kill-new desc) + (message desc))) ;; Major modes configuration |
