Subject: Re: bug#30419: tramp-sh-process-file: effect of tramp-remote-process-environment vs non-top level value of process-environment

From: Michael Albinus <[email-masked]>
Date: Sun, 11 Feb 2018 10:37:23 +0100

Noam Postavsky <[email-masked]> writes:

Hi Noam,

> `(tramp) Remote processes' says:
>
>        TRAMP does not use the defaults specified in `process-environment'
>     for running `process-file' or `start-file-process' on remote hosts.
>     When values from `process-environment' are needed for remote processes,
>     then set them as follows:
>
>          (let ((process-environment (cons "HGPLAIN=1" process-environment)))
>            (process-file ...))
>
>        This works only for environment variables not already set in the
>     `process-environment'.
>
> I'm confused as to why the environment variables aren't controlled by
> tramp-remote-process-environment.  Or is that in addition to the effect
> of tramp-remote-process-environment?  Does one take precedence over the
> other?

`tramp-remote-process-environment' is still in play. The let-bound
environment variables from `process-environment' are taken additionally,
and afterwards. So they would have precedence.

See bug#18940. The major reasoning is, that other packages do not want
to preload Tramp in order to set `tramp-remote-process-environment',
even if Tramp isn't used ever.

Best regards, Michael.