mirror of
https://github.com/golang/go
synced 2024-11-23 19:20:03 -07:00
cmd/go: report correct directory for 'no version control'
The scan starts at the directory we care about and works backward to the GOPATH root. The error should say the original directory name, not the name of the GOPATH root. Fixes #6175. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/13366050
This commit is contained in:
parent
6034406eae
commit
b99fdb2a11
@ -139,6 +139,18 @@ if ! ./testgo test ./testdata/testimport/*.go; then
|
|||||||
ok=false
|
ok=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
TEST version control error message includes correct directory
|
||||||
|
export GOPATH=$(pwd)/testdata/shadow/root1
|
||||||
|
if ./testgo get -u foo 2>testdata/err; then
|
||||||
|
echo "go get -u foo succeeded unexpectedly"
|
||||||
|
ok=false
|
||||||
|
elif ! grep testdata/shadow/root1/src/foo testdata/err >/dev/null; then
|
||||||
|
echo "go get -u error does not mention shadow/root1/src/foo:"
|
||||||
|
cat testdata/err
|
||||||
|
ok=false
|
||||||
|
fi
|
||||||
|
unset GOPATH
|
||||||
|
|
||||||
# Test that without $GOBIN set, binaries get installed
|
# Test that without $GOBIN set, binaries get installed
|
||||||
# into the GOPATH bin directory.
|
# into the GOPATH bin directory.
|
||||||
TEST install into GOPATH
|
TEST install into GOPATH
|
||||||
|
@ -321,6 +321,7 @@ func vcsForDir(p *Package) (vcs *vcsCmd, root string, err error) {
|
|||||||
return nil, "", fmt.Errorf("directory %q is outside source root %q", dir, srcRoot)
|
return nil, "", fmt.Errorf("directory %q is outside source root %q", dir, srcRoot)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
origDir := dir
|
||||||
for len(dir) > len(srcRoot) {
|
for len(dir) > len(srcRoot) {
|
||||||
for _, vcs := range vcsList {
|
for _, vcs := range vcsList {
|
||||||
if fi, err := os.Stat(filepath.Join(dir, "."+vcs.cmd)); err == nil && fi.IsDir() {
|
if fi, err := os.Stat(filepath.Join(dir, "."+vcs.cmd)); err == nil && fi.IsDir() {
|
||||||
@ -337,7 +338,7 @@ func vcsForDir(p *Package) (vcs *vcsCmd, root string, err error) {
|
|||||||
dir = ndir
|
dir = ndir
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, "", fmt.Errorf("directory %q is not using a known version control system", dir)
|
return nil, "", fmt.Errorf("directory %q is not using a known version control system", origDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
// repoRoot represents a version control system, a repo, and a root of
|
// repoRoot represents a version control system, a repo, and a root of
|
||||||
|
Loading…
Reference in New Issue
Block a user