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

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Robert Pluim
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



Reply | Threaded
Open this post in threaded view
|

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

Dmitry Gutov
On 20.12.2019 16:53, Robert Pluim wrote:
> 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').

Thanks for the report.

We can probably remove the "PAGER=" variable binding from that fuction
as well.



Reply | Threaded
Open this post in threaded view
|

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

Robert Pluim
>>>>> On Fri, 20 Dec 2019 17:50:50 +0200, Dmitry Gutov <[hidden email]> said:

    Dmitry> On 20.12.2019 16:53, Robert Pluim wrote:
    >> 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').

    Dmitry> Thanks for the report.

    Dmitry> We can probably remove the "PAGER=" variable binding from that fuction
    Dmitry> as well.

True. The attached works for me. emacs-27 or master?


From 09d1602de858ad1ce46a993fca20e1b573599fa9 Mon Sep 17 00:00:00 2001
From: Robert Pluim <[hidden email]>
Date: Fri, 10 Jan 2020 16:36:57 +0100
Subject: [PATCH] vc-dir: ensure we don't use a pager with git
To: [hidden email]

* lisp/vc/vc-git.el (vc-git--call): Call git with '--no-pager' to
avoid hangs caused by remote pager settings (Bug#38688).
---
 lisp/vc/vc-git.el | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 000d860e83..61e6c642d1 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -1785,13 +1785,12 @@ vc-git--call
  (process-environment
  (append
   `("GIT_DIR"
-    "PAGER="
     ;; Avoid repository locking during background operations
     ;; (bug#21559).
     ,@(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)))
--
2.24.0.155.gd9f6f3b619

Reply | Threaded
Open this post in threaded view
|

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

Eli Zaretskii
> Cc: [hidden email], Eli Zaretskii <[hidden email]>
> From: Dmitry Gutov <[hidden email]>
> Date: Sat, 11 Jan 2020 04:38:07 +0300
>
> On 10.01.2020 17:40, Robert Pluim wrote:
> > True. The attached works for me. emacs-27 or master?
>
> Looks safe enough to me, but it's up to Eli.

I'm okay with pushing this to the release branch.

Thanks.



Reply | Threaded
Open this post in threaded view
|

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

Robert Pluim
>>>>> On Sat, 11 Jan 2020 09:48:48 +0200, Eli Zaretskii <[hidden email]> said:

    >> Cc: [hidden email], Eli Zaretskii <[hidden email]>
    >> From: Dmitry Gutov <[hidden email]>
    >> Date: Sat, 11 Jan 2020 04:38:07 +0300
    >>
    >> On 10.01.2020 17:40, Robert Pluim wrote:
    >> > True. The attached works for me. emacs-27 or master?
    >>
    >> Looks safe enough to me, but it's up to Eli.

    Eli> I'm okay with pushing this to the release branch.

Done.

Robert