Environment Variables in hgrc and SSH
Yuya Nishihara
yuya at tcha.org
Mon Jan 10 06:34:01 CST 2011
Wagner Bruna wrote:
> On 01/10/2011 08:26 AM, A. S. Budden wrote:
> > I have a common set of hg configurations that I keep under (hg)
> > version control and I keep a copy on all the machines I use. In the
> > main file, I have the line:
> >
> > %include $HOSTNAME.hgrc
> >
> > to allow a few customisations for each PC. This seems to work
> > absolutely fine for normal operation (although I had to add 'export
> > HOSTNAME' to .bashrc first).
> >
> > However, when I connect to one of the PCs with this configuration
> > using ssh, I get:
> >
> > [local]$ # In a branch linked to ssh://username@hostname//path/to/repository
> > [local]$ hg pull -u
> > remote: hg: parse error at
> > /home/al/config/mercurial_config/hgrc:26: cannot include
> > /home/al/config/mercurial_config/$HOSTNAME.hgrc (No such file or
> > directory)
> > abort: no suitable response from remote hg!
> >
> > I think the problem is due to the exporting of the HOSTNAME variable
> > under ssh (so I guess this may strictly be more of an Ubuntu question
> > than a mercurial question):
> >
> > [local]$ ssh username at hostname hg showconfig
> > hg: parse error at /home/al/config/mercurial_config/hgrc:26:
> > cannot include /home/al/config/mercurial_config/$HOSTNAME.hgrc (No
> > such file or directory)
> >
> > [local]$ ssh username at hostname
> > [remote]$ hg showconfig
> > # This works fine
> > [remote]$ exit
> >
> > [local]$ ssh username at hostname 'echo $HOSTNAME'
> > # This works too: without the single quotes it prints the local
> > hostname; with them it prints the remote one.
> >
> > I've tried adding 'export HOSTNAME' to ~/.profile, ~/.bashrc and to a
> > new file called /etc/profile.d/exports.sh (all on the remote machine),
> > but none of these seemed to have helped.
> >
> > Does anyone know of the correct way to make this work?
>
> You probably need to add the variable to ~/.ssh/environment ; search
> for "environment" on the ssh man page.
See also sshd_config.
Recent sshd disallows ~/.ssh/environment by default. (PermitUserEnvironment = no)
Yuya,
More information about the Mercurial
mailing list