emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/vc-fossil 6619ffb 048/111: Improve log command.


From: ELPA Syncer
Subject: [nongnu] elpa/vc-fossil 6619ffb 048/111: Improve log command.
Date: Wed, 29 Sep 2021 08:59:19 -0400 (EDT)

branch: elpa/vc-fossil
commit 6619ffba74686cf6c8439a5ec362a9cb7c4334b5
Author: fifr <fifr>
Commit: fifr <fifr>

    Improve log command.
    
     * support limits
     * colorize output using custom `vc-fossil-log-view-mode`
---
 vc/el/vc-fossil.el | 33 ++++++++++++++++++++++++++++-----
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/vc/el/vc-fossil.el b/vc/el/vc-fossil.el
index ec96257..efa66fd 100644
--- a/vc/el/vc-fossil.el
+++ b/vc/el/vc-fossil.el
@@ -234,11 +234,34 @@ If `files` is nil return the status for all files."
 
 (defun vc-fossil-print-log (files buffer &optional shortlog start-revision 
limit)
   "Print full log for a file"
-  (when files
-    (vc-fossil-command buffer 0 (car files) "finfo" "-l")
-    (vc-fossil-print-log (cdr files) buffer)))
-
-;; TBD: log-entry
+  (vc-setup-buffer buffer)
+  (let ((inhibit-read-only t))
+    (with-current-buffer buffer
+      (dolist (file files)
+        (apply #'vc-fossil-command buffer 0 nil "timeline"
+               (nconc
+                (when start-revision (list "before" start-revision))
+                (when limit (list "-n" (number-to-string limit)))
+                (list "-p" file)))))))
+
+(define-derived-mode vc-fossil-log-view-mode log-view-mode "Fossil-Log-View"
+  (require 'add-log) ;; we need the add-log faces
+  (set (make-local-variable 'log-view-file-re) "\\`a\\`")
+  (set (make-local-variable 'log-view-per-file-logs) nil)
+  (set (make-local-variable 'log-view-message-re)
+       "^[0-9:]+ \\[\\([0-9a-fA-F]*\\)\\] \\(?:\\*[^*]*\\*\\)? ?\\(.*\\)")
+  (set (make-local-variable 'log-view-font-lock-keywords)
+       (append
+        '(
+          ("^\\([0-9:]*\\) \\(\\[[[:alnum:]]*\\]\\) 
\\(\\(?:\\*[[:word:]]*\\*\\)?\\) ?\\(.*?\\) (user: \\([[:word:]]*\\) tags: 
\\(.*\\))"
+           (1 'change-log-date)
+           (2 'change-log-name)
+           (3 'highlight)
+           (4 'log-view-message)
+           (5 'change-log-name)
+           (6 'highlight))
+          ("^=== \\(.*\\) ==="
+           (1 'change-log-date))))))
 
 (defun vc-fossil-diff (file &optional rev1 rev2 buffer)
   "Get Differences for a file"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]