Mercurial > emacs
comparison lisp/vc-git.el @ 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 | 6e0f1038bc44 |
comparison
equal
deleted
inserted
replaced
106463:783bd2552dd4 | 106464:67d9cb4f16c3 |
---|---|
549 ;; If the buffer exists from a previous invocation it might be | 549 ;; If the buffer exists from a previous invocation it might be |
550 ;; read-only. | 550 ;; read-only. |
551 (let ((inhibit-read-only t)) | 551 (let ((inhibit-read-only t)) |
552 (with-current-buffer | 552 (with-current-buffer |
553 buffer | 553 buffer |
554 (if shortlog | 554 (apply 'vc-git-command buffer |
555 (vc-git-command buffer 'async files | 555 'async files |
556 "log" ;; "--graph" | 556 (append |
557 "--date=short" "--pretty=format:%h %ad %s" "--abbrev-commit" | 557 '("log") |
558 "--") | 558 (when shortlog |
559 (vc-git-command buffer 'async files | 559 '("--graph" "--decorate" |
560 "rev-list" ;; "--graph" | 560 "--date=short" "--pretty=format:%d%h %ad %s" "--abbrev-commit")) |
561 "--pretty" "HEAD" "--"))) | 561 (when limit (list "-n" (format "%s" limit))) |
562 (when limit 'limit-unsupported)))) | 562 '("--"))))))) |
563 | 563 |
564 (defvar log-view-message-re) | 564 (defvar log-view-message-re) |
565 (defvar log-view-file-re) | 565 (defvar log-view-file-re) |
566 (defvar log-view-font-lock-keywords) | 566 (defvar log-view-font-lock-keywords) |
567 (defvar log-view-per-file-logs) | 567 (defvar log-view-per-file-logs) |
574 ;; Don't have file markers, so use impossible regexp. | 574 ;; Don't have file markers, so use impossible regexp. |
575 (set (make-local-variable 'log-view-file-re) "\\`a\\`") | 575 (set (make-local-variable 'log-view-file-re) "\\`a\\`") |
576 (set (make-local-variable 'log-view-per-file-logs) nil) | 576 (set (make-local-variable 'log-view-per-file-logs) nil) |
577 (set (make-local-variable 'log-view-message-re) | 577 (set (make-local-variable 'log-view-message-re) |
578 (if vc-short-log | 578 (if vc-short-log |
579 "^\\(?:[*/\\| ]+ \\)?\\([0-9a-z]+\\) \\([-a-z0-9]+\\) \\(.*\\)" | 579 "^\\(?:[*/\\| ]+ \\)?\\(?: ([^)]+)\\)?\\([0-9a-z]+\\) \\([-a-z0-9]+\\) \\(.*\\)" |
580 "^commit *\\([0-9a-z]+\\)")) | 580 "^commit *\\([0-9a-z]+\\)")) |
581 (set (make-local-variable 'log-view-font-lock-keywords) | 581 (set (make-local-variable 'log-view-font-lock-keywords) |
582 (if vc-short-log | 582 (if vc-short-log |
583 (append | 583 '( |
584 `((,log-view-message-re | 584 ;; Same as log-view-message-re, except that we don't |
585 (1 'change-log-acknowledgement) | 585 ;; want the shy group for the tag name. |
586 (2 'change-log-date)))) | 586 ("^\\(?:[*/\\| ]+ \\)?\\( ([^)]+)\\)?\\([0-9a-z]+\\) \\([-a-z0-9]+\\) \\(.*\\)" |
587 (1 'highlight nil lax) | |
588 (2 'change-log-acknowledgement) | |
589 (3 'change-log-date))) | |
587 (append | 590 (append |
588 `((,log-view-message-re (1 'change-log-acknowledgement))) | 591 `((,log-view-message-re (1 'change-log-acknowledgement))) |
589 ;; Handle the case: | 592 ;; Handle the case: |
590 ;; user: foo@bar | 593 ;; user: foo@bar |
591 '(("^Author:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)" | 594 '(("^Author:[ \t]+\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)" |
592 (1 'change-log-email)) | 595 (1 'change-log-email)) |
593 ;; Handle the case: | 596 ;; Handle the case: |