[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inefficient eshell with tramp
From: |
Michael Albinus |
Subject: |
Re: Inefficient eshell with tramp |
Date: |
Wed, 19 May 2010 15:55:36 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Leo <address@hidden> writes:
> Hello,
Hi,
> I have both eshell and shell point to the same remote directory and then
> I run 'git version'.
>
> With eshell, every run gives me:
>
> Tramp: Opening connection for kkn using scp...
> Tramp: Waiting 60s for local shell to come up...
> Tramp: Sending command `exec ssh kkn -q -e none'
> Tramp: Waiting for prompts from remote shell
> Tramp: Found remote shell prompt on `kkn'
>
> But shell only does this at M-x shell, subsequent commands run pretty
> quickly. For example, 'git version' doesn't even print anything to
> *Message*. Can this inefficiency be resolved?
eshell calls `start-file-process' (see `eshell-gather-process-output')
for every single command , which is an asynchronous process. Tramp opens
another connection for asynchronous processes, what you see.
shell calls once `start-file-process' ("/bin/sh -i"), and lets execute
all commands inside this process. That's why it is much faster.
I fear it cannot be changed, because eshell is more flexible than
shell. You could do
~ $ cd /scp:remotehost:
/scp:remotehost: $ hostname
remotehost
/scp:remotehost: $ cd /scp:anotherhost:
/scp:anotherhost: $ hostname
anotherhost
/scp:anotherhost: $
This is not possible with shell.
> Thanks.
>
> Leo
Best regards, Michael.