« Return to Thread: show merge info for git vc-log

show merge info for git vc-log

by Dan Nicolaescu :: Rate this Message:

Reply to Author | View in Thread


git log can show a graph of the merges, it looks like this:


*   commit blah
|\  Merge: blah blah
| | Author: blah
| | Date:   blah
| |
| |     Merge branch 'master'
| |
| *   commit blah
| |\  Merge: blah blah
| | | Author: blah
| | | Date:   blah
| | |
| | |     Merge branch foo.
| | |
| | * commit blah
| | | Author: blah
| | | Date:   blah
| | |
| | |     Fix some stuff.
| | |
| | * commit blah
| | | Author: blah
| | | Date:   blah
| | |
| | |     Fix more stuff.
| | |
| | |
* | | commit blah
|/ /  Author: blah
| |   Date:   blah
| |  
| |       blah


Should we vc-log do this by default for git?
Lightly tested patch:

--- vc-git.el.~1.82.~ Fri Jun 26 18:46:22 2009
+++ vc-git.el Tue Jul  7 11:27:52 2009
@@ -459,4 +459,4 @@
       (with-current-buffer
           buffer
  (vc-git-command buffer 'async files
- "rev-list" "--pretty" "HEAD" "--")))))
+ "rev-list"  "--graph" "--pretty" "HEAD" "--")))))
@@ -472,17 +497,17 @@
   (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)
-       "^commit *\\([0-9a-z]+\\)")
+       "^[ */\\|]+commit *\\([0-9a-z]+\\)")
   (set (make-local-variable 'log-view-font-lock-keywords)
        (append
         `((,log-view-message-re  (1 'change-log-acknowledgement)))
         ;; Handle the case:
         ;; user: foo@bar
-        '(("^Author:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)"
+        '((" Author:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)"
            (1 'change-log-email))
           ;; Handle the case:
           ;; user: FirstName LastName <foo@bar>
-          ("^Author:[ \t]+\\([^<(]+?\\)[ \t]*[(<]\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)[>)]"
+          (" Author:[ \t]+\\([^<(]+?\\)[ \t]*[(<]\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)[>)]"
            (1 'change-log-name)
            (2 'change-log-email))
           ("^ +\\(?:\\(?:[Aa]cked\\|[Ss]igned-[Oo]ff\\)-[Bb]y:\\)[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)"
@@ -490,11 +515,11 @@
           ("^ +\\(?:\\(?:[Aa]cked\\|[Ss]igned-[Oo]ff\\)-[Bb]y:\\)[ \t]+\\([^<(]+?\\)[ \t]*[(<]\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)[>)]"
            (1 'change-log-name)
            (2 'change-log-email))
-          ("^Merge: \\([0-9a-z]+\\) \\([0-9a-z]+\\)"
+          (" Merge: \\([0-9a-z]+\\) \\([0-9a-z]+\\)"
            (1 'change-log-acknowledgement)
            (2 'change-log-acknowledgement))
-          ("^Date:   \\(.+\\)" (1 'change-log-date))
-          ("^summary:[ \t]+\\(.+\\)" (1 'log-view-message))))))
+          (" Date:   \\(.+\\)" (1 'change-log-date))
+          (" summary:[ \t]+\\(.+\\)" (1 'log-view-message))))))
 
 (defun vc-git-show-log-entry (revision)
   "Move to the log entry for REVISION.


 « Return to Thread: show merge info for git vc-log