Skip to content
  • Jeff King's avatar
    git_connect: clear GIT_* environment for ssh · aab40438
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    When we "switch" to another local repository to run the server
    side of a fetch or push, we must clear the variables in
    local_repo_env so that our local $GIT_DIR, etc, do not
    pollute the upload-pack or receive-pack that is executing in
    the "remote" repository.
    
    We have never done so for ssh connections. For the most
    part, nobody has noticed because ssh will not pass unknown
    environment variables by default. However, it is not out of
    the question for a user to configure ssh to pass along GIT_*
    variables using SendEnv/AcceptEnv.
    
    We can demonstrate the problem by using "git -c" on a local
    command and seeing its impact on a remote repository.  This
    config ends up in $GIT_CONFIG_PARAMETERS. In the local case,
    the config has no impact, but in the ssh transport, it does
    (our test script has a fake ssh that passes through all
    environment variables; this isn't normal, but does simulate
    one possible setup).
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    aab40438