Skip to content
  • Phil Miller's avatar
    CVS Server: Support reading base and roots from environment · 03bd0d60
    Phil Miller authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The Gitosis single-account Git/ssh hosting system runs git commands
    through git-shell after confirming that the connecting user is
    authorized to access the requested repository. This works well for
    upload-pack and receive-pack, which take a repository argument through
    git-shell. This doesn't work so well for `cvs server', which is passed
    through literally, with no arguments. Allowing arguments risks
    sneaking in `--export-all', so that restriction should be maintained.
    
    Despite that, passing a repository root is necessary for per-user
    access control by the hosting software, and passing a base path
    improves usability without weakening security. Thus, git-cvsserver
    needs to come up with these values at runtime by some other
    means. Since git-shell preserves the environment for other purposes,
    the environment can carry these arguments as well.
    
    Thus, modify git-cvsserver to read $GIT_CVSSERVER_{BASE_PATH,ROOT} in
    the absence of equivalent command line arguments.
    
    Signed-off-by: default avatarPhil Miller <mille121@illinois.edu>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    03bd0d60