Skip to content
  • epriestley's avatar
    Simplify Repository remote and local command construction · ff8b4897
    epriestley authored
    Summary:
    This cleans up some garbage:
    
      - We were specifying environmental variables with `X=y git ...`, but now have `setEnv()` on both `ExecFuture` and `PhutilExecPassthru`. Use `setEnv()`.
      - We were specifying the working directory with `(cd %s && git ...)`, but now have `setCWD()` on both `ExecFuture` and `PhutilExecPassthru`. Use `setCWD()`.
      - We were specifying the Git credentials with `ssh-agent -c (ssh-add ... && git ...)`. We can do this more cleanly with `GIT_SSH`. Use `GIT_SSH`.
      - Since we have to write a script for `GIT_SSH` anyway, use the same script for Subversion and Mercurial.
    
    This fixes two specific issues:
    
      - Previously, we were not able to set `-o StrictHostKeyChecking=no` on Git commands, so the first time you cloned a git repo the daemons would generally prompt you to add `github.com` or whatever to `known_hosts`. Since this was non-interactive, things would mysteriously hang, in effect. With `GIT_SSH`, we can specif...
    ff8b4897