diff options
| author | Juri Linkov <juri@linkov.net> | 2019-07-16 01:27:19 +0300 |
|---|---|---|
| committer | Juri Linkov <juri@linkov.net> | 2019-07-16 01:27:19 +0300 |
| commit | cdec5a17fd148098e535b4168de0169082176bbd (patch) | |
| tree | dc9b71991bdb7c1ca5b9f497f0167f9ddbf83243 /lisp/vc/vc-git.el | |
| parent | 6253541c76a449780815f4a8fd75a9aa70b931ae (diff) | |
| download | emacs-cdec5a17fd148098e535b4168de0169082176bbd.tar.gz | |
* lisp/vc/vc.el (vc-log-search): New command (bug#36644).
* lisp/vc/vc-git.el (vc-git-log-search): New function.
(vc-git-log-view-mode): Check vc-log-view-type for log-search.
Diffstat (limited to 'lisp/vc/vc-git.el')
| -rw-r--r-- | lisp/vc/vc-git.el | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 8b828563325..5b61a7b4bc2 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1073,6 +1073,22 @@ If LIMIT is a revision string, use it as an end-revision." "@{upstream}" remote-location)))) +(defun vc-git-log-search (buffer pattern) + (let ((args `("log" "--no-color" "-i" + ,(format "--grep=%s" + (or (and pattern (shell-quote-argument pattern)) + ""))))) + (when current-prefix-arg + (setq args (cdr (split-string + (read-shell-command + "Search log with command: " + (format "%s %s" vc-git-program + (mapconcat 'identity args " ")) + 'vc-git-history) + " " t)))) + (vc-setup-buffer buffer) + (apply 'vc-git-command buffer 'async nil args))) + (defun vc-git-mergebase (rev1 &optional rev2) (unless rev2 (setq rev2 "HEAD")) (string-trim-right (vc-git--run-command-string nil "merge-base" rev1 rev2))) @@ -1089,7 +1105,7 @@ If LIMIT is a revision string, use it as an end-revision." (set (make-local-variable 'log-view-file-re) regexp-unmatchable) (set (make-local-variable 'log-view-per-file-logs) nil) (set (make-local-variable 'log-view-message-re) - (if (not (eq vc-log-view-type 'long)) + (if (not (memq vc-log-view-type '(long log-search))) (cadr vc-git-root-log-format) "^commit *\\([0-9a-z]+\\)")) ;; Allow expanding short log entries. @@ -1098,7 +1114,7 @@ If LIMIT is a revision string, use it as an end-revision." (set (make-local-variable 'log-view-expanded-log-entry-function) 'vc-git-expanded-log-entry)) (set (make-local-variable 'log-view-font-lock-keywords) - (if (not (eq vc-log-view-type 'long)) + (if (not (memq vc-log-view-type '(long log-search))) (list (cons (nth 1 vc-git-root-log-format) (nth 2 vc-git-root-log-format))) (append |
