Evaluating this expression works as expected the first two times:

--8<---------------cut here---------------start------------->8---
(let ((default-directory "/[email protected]:bench/"))
  (shell-command "ls" "*shell output*"))
--8<---------------cut here---------------end--------------->8---

In this case it happens to result in this output:

--8<---------------cut here---------------start------------->8---
Papilio  aslink
--8<---------------cut here---------------end--------------->8---

However, on the third time I get

--8<---------------cut here---------------start------------->8---
sh: cd: bench/: No such file or directory
Papilio  aslink
--8<---------------cut here---------------end--------------->8---

The remote directory ~/bench exists. What seems to be happening is that
tramp has attempted to cd into ~/bench/bench, which does not exist. This
is presumably because tramp has cached some connection information,
although I am a bit surprised that this kicks in on the third evaluation
and not the second. Calling `tramp-cleanup-all-connections' resets
things so that the first two evaluations work again and the third
generates the error message.

I can get round this by using absolute remote paths, but I feel that
this should not be happening with relative paths?

Dan

tramp 2.1.18-23.2
Emacs compiled from source
GNU Emacs 23.2.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-07-04 on 
Luscinia
Ubuntu 10.04

_______________________________________________
Tramp-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/tramp-devel

Reply via email to