|  | #!/bin/sh | 
|  |  | 
|  | test_description='test disabling of local paths in clone/fetch' | 
|  |  | 
|  | . ./test-lib.sh | 
|  | . "$TEST_DIRECTORY/lib-proto-disable.sh" | 
|  |  | 
|  | test_expect_success 'setup repository to clone' ' | 
|  | test_commit one | 
|  | ' | 
|  |  | 
|  | test_proto "file://" file "file://$PWD" | 
|  | test_proto "path" file . | 
|  |  | 
|  | test_expect_success 'setup repo with dash' ' | 
|  | git init --bare repo.git && | 
|  | git push repo.git HEAD && | 
|  | mv repo.git "$PWD/-repo.git" | 
|  | ' | 
|  |  | 
|  | # This will fail even without our rejection because upload-pack will | 
|  | # complain about the bogus option. So let's make sure that GIT_TRACE | 
|  | # doesn't show us even running upload-pack. | 
|  | # | 
|  | # We must also be sure to use "fetch" and not "clone" here, as the latter | 
|  | # actually canonicalizes our input into an absolute path (which is fine | 
|  | # to allow). | 
|  | test_expect_success 'repo names starting with dash are rejected' ' | 
|  | rm -f trace.out && | 
|  | test_must_fail env GIT_TRACE="$PWD/trace.out" git fetch -- -repo.git && | 
|  | ! grep upload-pack trace.out | 
|  | ' | 
|  |  | 
|  | test_expect_success 'full paths still work' ' | 
|  | git fetch "$PWD/-repo.git" | 
|  | ' | 
|  |  | 
|  | test_done |