changeset 106464:67d9cb4f16c3

* vc-git.el (vc-git-print-log): Handle a limit argument. Display the short log in graph form and with labels. (vc-git-log-view-mode): Handle labels.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sun, 06 Dec 2009 22:18:03 +0000
parents 783bd2552dd4
children 77b0defca7a3
files lisp/ChangeLog lisp/vc-git.el
diffstat 2 files changed, 22 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sun Dec 06 21:25:55 2009 +0000
+++ b/lisp/ChangeLog	Sun Dec 06 22:18:03 2009 +0000
@@ -1,5 +1,9 @@
 2009-12-06  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	* vc-git.el (vc-git-print-log): Handle a limit argument.  Display
+	the short log in graph form and with labels.
+	(vc-git-log-view-mode): Handle labels.
+
 	Make vc-revert change VC state from 'added to 'unregistered.
 	* vc-git.el (vc-git-revert): Call git reset first.
 
--- a/lisp/vc-git.el	Sun Dec 06 21:25:55 2009 +0000
+++ b/lisp/vc-git.el	Sun Dec 06 22:18:03 2009 +0000
@@ -551,15 +551,15 @@
     (let ((inhibit-read-only t))
       (with-current-buffer
           buffer
-	(if shortlog
-	(vc-git-command buffer 'async files
-			    "log" ;; "--graph"
-			    "--date=short" "--pretty=format:%h  %ad  %s" "--abbrev-commit"
-			    "--")
-	  (vc-git-command buffer 'async files
-			  "rev-list" ;; "--graph"
-			  "--pretty" "HEAD" "--")))
-        (when limit 'limit-unsupported))))
+	(apply 'vc-git-command buffer
+	       'async files
+	       (append
+		'("log")
+		(when shortlog
+		  '("--graph" "--decorate"
+		    "--date=short" "--pretty=format:%d%h  %ad  %s" "--abbrev-commit"))
+		(when limit (list "-n" (format "%s" limit)))
+		'("--")))))))
 
 (defvar log-view-message-re)
 (defvar log-view-file-re)
@@ -576,16 +576,19 @@
   (set (make-local-variable 'log-view-per-file-logs) nil)
   (set (make-local-variable 'log-view-message-re)
        (if vc-short-log
-	 "^\\(?:[*/\\| ]+ \\)?\\([0-9a-z]+\\)  \\([-a-z0-9]+\\)  \\(.*\\)"
+	   "^\\(?:[*/\\| ]+ \\)?\\(?: ([^)]+)\\)?\\([0-9a-z]+\\)  \\([-a-z0-9]+\\)  \\(.*\\)"
 	 "^commit *\\([0-9a-z]+\\)"))
   (set (make-local-variable 'log-view-font-lock-keywords)
        (if vc-short-log
-	   (append
-	    `((,log-view-message-re
-	       (1 'change-log-acknowledgement)
-	       (2 'change-log-date))))
+	   '(
+	     ;; Same as log-view-message-re, except that we don't
+	     ;; want the shy group for the tag name.
+	     ("^\\(?:[*/\\| ]+ \\)?\\( ([^)]+)\\)?\\([0-9a-z]+\\)  \\([-a-z0-9]+\\)  \\(.*\\)"
+	      (1 'highlight nil lax)
+	      (2 'change-log-acknowledgement)
+	      (3 'change-log-date)))
        (append
-        `((,log-view-message-re  (1 'change-log-acknowledgement)))
+        `((,log-view-message-re (1 'change-log-acknowledgement)))
         ;; Handle the case:
         ;; user: foo@bar
         '(("^Author:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)"