summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2020-09-25 17:05:10 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2020-09-25 17:21:47 +0200
commit5e93926f172dda15e0f4cddcb3dcfe55b1e426ba (patch)
tree122b62ad39ab884bc417b1ad198b88faff3fa2ac
parent314d88bb4f3a7a7df743a3e1dff42d40fc4a6c6c (diff)
downloaddotfiles-5e93926f172dda15e0f4cddcb3dcfe55b1e426ba.tar.xz
Simplify revision-formatting function
Commit 2020-09-25 "* CONTRIBUTE: Don't recommend action stamps" (499848d840) officially disavows action stamps.
-rw-r--r--.emacs29
1 files changed, 11 insertions, 18 deletions
diff --git a/.emacs b/.emacs
index 773af2f..d62e7ef 100644
--- a/.emacs
+++ b/.emacs
@@ -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