Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes

From: Tom Tromey <[email-masked]>
Date: Thu, 16 Feb 2017 21:05:04 -0700

Here's an updated patch.

Tom

commit 6427cf681a635b0a60c1b923b92ece4348eff250
Author: Tom Tromey <[email-masked]>
Date:   Wed Feb 15 05:12:18 2017 -0700

    vc-log-outgoing fixes for git; add binding to vc-dir
    
    * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind "O" to vc-log-outgoing.
    * lisp/vc/vc-git.el (vc-git-log-outgoing, vc-git-log-incoming): Use
    async execution.
    (vc-git-log-view-mode): Also truncate lines for log-outgoing and
    log-incoming.
    * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Don't pass nil
    as remote-location argument.

diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 5374f1c..532bad1 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -255,6 +255,7 @@ vc-dir-mode-map
     (define-key map "l" 'vc-print-log)	   ;; C-x v l
     (define-key map "L" 'vc-print-root-log) ;; C-x v L
     (define-key map "I" 'vc-log-incoming)   ;; C-x v I
+    (define-key map "O" 'vc-log-outgoing)   ;; C-x v O
     ;; More confusing than helpful, probably
     ;;(define-key map "R" 'vc-revert) ;; u is taken by vc-dir-unmark.
     ;;(define-key map "A" 'vc-annotate) ;; g is taken by revert-buffer
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 0c11a7f..3546a17 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -972,7 +972,7 @@ vc-git-print-log
 (defun vc-git-log-outgoing (buffer remote-location)
   (interactive)
   (vc-git-command
-   buffer 0 nil
+   buffer 'async nil
    "log"
    "--no-color" "--graph" "--decorate" "--date=short"
    (format "--pretty=tformat:%s" (car vc-git-root-log-format))
@@ -986,7 +986,7 @@ vc-git-log-incoming
   (interactive)
   (vc-git-command nil 0 nil "fetch")
   (vc-git-command
-   buffer 0 nil
+   buffer 'async nil
    "log"
    "--no-color" "--graph" "--decorate" "--date=short"
    (format "--pretty=tformat:%s" (car vc-git-root-log-format))
@@ -1011,7 +1011,7 @@ vc-git-log-view-mode
 	   (cadr vc-git-root-log-format)
 	 "^commit *\\([0-9a-z]+\\)"))
   ;; Allow expanding short log entries.
-  (when (eq vc-log-view-type 'short)
+  (when (memq vc-log-view-type '(short log-outgoing log-incoming))
     (setq truncate-lines t)
     (set (make-local-variable 'log-view-expanded-log-entry-function)
 	 'vc-git-expanded-log-entry))
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 80166f6..23b8980 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -2404,8 +2404,8 @@ vc-log-incoming
   (let ((backend (vc-deduce-backend)))
     (unless backend
       (error "Buffer is not version controlled"))
-    (vc-incoming-outgoing-internal backend remote-location "*vc-incoming*"
-                                   'log-incoming)))
+    (vc-incoming-outgoing-internal backend (or remote-location "")
+                                   "*vc-incoming*" 'log-incoming)))
 
 ;;;###autoload
 (defun vc-log-outgoing (&optional remote-location)
@@ -2417,8 +2417,8 @@ vc-log-outgoing
   (let ((backend (vc-deduce-backend)))
     (unless backend
       (error "Buffer is not version controlled"))
-    (vc-incoming-outgoing-internal backend remote-location "*vc-outgoing*"
-                                   'log-outgoing)))
+    (vc-incoming-outgoing-internal backend (or remote-location "")
+                                   "*vc-outgoing*" 'log-outgoing)))
 
 ;;;###autoload
 (defun vc-region-history (from to)