chg: set CHGHG before connecting to command server
cf4d2f31660d (!523 (merged)) changed chg to set CHGHG
itself when spawning a new command
server, in order to ensure that the path to the hg
executable would be checked
during server validation. (This is mostly useful when chg is built with HGPATHREL
).
However, that change broke chg because it failed to set CHGHG
before trying
to connect to an existing command server. This means that if CHGHG
is not
present in the environment, chg will always spawn a new command server, entirely
negating the point of chg. This bug wasn't initially caught because of the
difficulty of writing automated tests with the HGPATHREL
feature enabled, which
meant the change was only tested manually to make sure that it fixed the problem
with HGPATHREL
that prompted the change.
In practice, this functionality is only really useful when chg is built with
HGPATHREL
, so I considered wrapping it in an #ifdef
to preserve the old
behavior by default. However, this makes it hard to write tests since one would
have to explicitly set HGPATHREL=1
when running run-tests.py
(which is why
the original change lacked tests). It would be great if there were a way of
testing features that are gated behind conditional compilation.