Subject: bug#6137: [Yuriy Vostrikov] emacs, vc-git

From: Stefan Monnier <[email-masked]>
Date: Fri, 07 May 2010 16:41:15 -0400

[ I do not use Git enough to be sure if his patch is the right way to
  fix it.  It does look OK, tho maybe the right (but harder) place to
  fix it is in Tramp.  Can someone take a look and install it?  --Stef  ]

Hello.
You are last commiter of vc-git.el so i'm writing to you.

It's probably a good idea to forcefully disable pager then calling git
command from vc-git.el.
If buffer is tramp controlled then git will be run on remote host by
tramp magic. In this particular case
git stdout will be connected to pty instead of pipe and default git
behavior to call $PAGER in this case.
Which is effectively makes vc-git broken on tramp controlled buffers.
Patch is attached.

=== modified file 'lisp/vc-git.el'
--- lisp/vc-git.el	2010-04-21 02:05:24 +0000
+++ lisp/vc-git.el	2010-05-05 09:28:56 +0000
@@ -966,7 +966,7 @@
 (defun vc-git-command (buffer okstatus file-or-list &rest flags)
   "A wrapper around `vc-do-command' for use in vc-git.el.
 The difference to vc-do-command is that this function always invokes `git'."
-  (apply 'vc-do-command (or buffer "*vc*") okstatus "git" file-or-list flags))
+    (apply 'vc-do-command (or buffer "*vc*") okstatus "git" file-or-list (cons "--no-pager" flags)))
 
 (defun vc-git--empty-db-p ()
   "Check if the git db is empty (no commit done yet)."