Subject: bug#38688: 27.0.50; vc-dir + tramp hangs when there are stashes

From: Robert Pluim <[email-masked]>
Date: Fri, 20 Dec 2019 15:53:53 +0100

When visiting a remote git repo using tramp, if you subsequently run
'vc-dir', then emacs will hang forever if the remote repo has
stashes. This turned out to be to me having

         pager = less -FRXI

in my remote .gitconfig. Unsetting that fixes it, but vc-git should
perhaps take care to run git with '--no-pager' (it already does
something similar in 'vc-git-command').

diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index cdb50db0d0..246fe77f1f 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -1791,7 +1791,7 @@ vc-git--call
 	    ,@(when revert-buffer-in-progress-p
 		'("GIT_OPTIONAL_LOCKS=0")))
 	  process-environment)))
-    (apply 'process-file vc-git-program nil buffer nil command args)))
+    (apply 'process-file vc-git-program nil buffer nil "--no-pager" command args)))
 
 (defun vc-git--out-ok (command &rest args)
   (zerop (apply 'vc-git--call '(t nil) command args)))

In GNU Emacs 27.0.50 (build 27, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G1012))
 of 2019-12-12 built on rpluim-mac
Repository revision: d1f1e3640d7940718e7b878803d0b80709b60234
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1671
System Description:  Mac OS X 10.14.6