mirror of https://github.com/golang/go.git
cmd/go: add hint to read 'go help vcs' to GOVCS errors
Fixes #43596 Change-Id: Iff925d077b5de64161e88c9471402bc7e8885fcd Reviewed-on: https://go-review.googlesource.com/c/go/+/282713 Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
cd6f3a54e4
commit
59bfc18e34
|
|
@ -281,14 +281,14 @@ func reportError(q *query, err error) {
|
||||||
// TODO(bcmills): Use errors.As to unpack these errors instead of parsing
|
// TODO(bcmills): Use errors.As to unpack these errors instead of parsing
|
||||||
// strings with regular expressions.
|
// strings with regular expressions.
|
||||||
|
|
||||||
patternRE := regexp.MustCompile("(?m)(?:[ \t(\"`]|^)" + regexp.QuoteMeta(q.pattern) + "(?:[ @:)\"`]|$)")
|
patternRE := regexp.MustCompile("(?m)(?:[ \t(\"`]|^)" + regexp.QuoteMeta(q.pattern) + "(?:[ @:;)\"`]|$)")
|
||||||
if patternRE.MatchString(errStr) {
|
if patternRE.MatchString(errStr) {
|
||||||
if q.rawVersion == "" {
|
if q.rawVersion == "" {
|
||||||
base.Errorf("go get: %s", errStr)
|
base.Errorf("go get: %s", errStr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
versionRE := regexp.MustCompile("(?m)(?:[ @(\"`]|^)" + regexp.QuoteMeta(q.version) + "(?:[ :)\"`]|$)")
|
versionRE := regexp.MustCompile("(?m)(?:[ @(\"`]|^)" + regexp.QuoteMeta(q.version) + "(?:[ :;)\"`]|$)")
|
||||||
if versionRE.MatchString(errStr) {
|
if versionRE.MatchString(errStr) {
|
||||||
base.Errorf("go get: %s", errStr)
|
base.Errorf("go get: %s", errStr)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -729,7 +729,7 @@ func checkGOVCS(vcs *Cmd, root string) error {
|
||||||
if private {
|
if private {
|
||||||
what = "private"
|
what = "private"
|
||||||
}
|
}
|
||||||
return fmt.Errorf("GOVCS disallows using %s for %s %s", vcs.Cmd, what, root)
|
return fmt.Errorf("GOVCS disallows using %s for %s %s; see 'go help vcs'", vcs.Cmd, what, root)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -5,40 +5,40 @@ env GOPROXY=direct
|
||||||
# GOVCS stops go get
|
# GOVCS stops go get
|
||||||
env GOVCS='*:none'
|
env GOVCS='*:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
env GOPRIVATE='github.com/google'
|
env GOPRIVATE='github.com/google'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for private github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for private github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# public pattern works
|
# public pattern works
|
||||||
env GOPRIVATE='github.com/google'
|
env GOPRIVATE='github.com/google'
|
||||||
env GOVCS='public:all,private:none'
|
env GOVCS='public:all,private:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for private github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for private github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# private pattern works
|
# private pattern works
|
||||||
env GOPRIVATE='hubgit.com/google'
|
env GOPRIVATE='hubgit.com/google'
|
||||||
env GOVCS='private:all,public:none'
|
env GOVCS='private:all,public:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# other patterns work (for more patterns, see TestGOVCS)
|
# other patterns work (for more patterns, see TestGOVCS)
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS='github.com:svn|hg'
|
env GOVCS='github.com:svn|hg'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
env GOVCS='github.com/google/go-cmp/inner:git,github.com:svn|hg'
|
env GOVCS='github.com/google/go-cmp/inner:git,github.com:svn|hg'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^go get: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# bad patterns are reported (for more bad patterns, see TestGOVCSErrors)
|
# bad patterns are reported (for more bad patterns, see TestGOVCSErrors)
|
||||||
env GOVCS='git'
|
env GOVCS='git'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get github.com/google/go-cmp: malformed entry in GOVCS \(missing colon\): "git"'
|
stderr '^go get github.com/google/go-cmp: malformed entry in GOVCS \(missing colon\): "git"$'
|
||||||
|
|
||||||
env GOVCS=github.com:hg,github.com:git
|
env GOVCS=github.com:hg,github.com:git
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'go get github.com/google/go-cmp: unreachable pattern in GOVCS: "github.com:git" after "github.com:hg"'
|
stderr '^go get github.com/google/go-cmp: unreachable pattern in GOVCS: "github.com:git" after "github.com:hg"$'
|
||||||
|
|
||||||
# bad GOVCS patterns do not stop commands that do not need to check VCS
|
# bad GOVCS patterns do not stop commands that do not need to check VCS
|
||||||
go list
|
go list
|
||||||
|
|
@ -50,19 +50,19 @@ env GOPROXY=direct
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.svn/hello
|
! go get rsc.io/nonexist.svn/hello
|
||||||
stderr 'go get rsc.io/nonexist.svn/hello: GOVCS disallows using svn for public rsc.io/nonexist.svn'
|
stderr '^go get rsc.io/nonexist.svn/hello: GOVCS disallows using svn for public rsc.io/nonexist.svn; see ''go help vcs''$'
|
||||||
|
|
||||||
# fossil is disallowed by default
|
# fossil is disallowed by default
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.fossil/hello
|
! go get rsc.io/nonexist.fossil/hello
|
||||||
stderr 'go get rsc.io/nonexist.fossil/hello: GOVCS disallows using fossil for public rsc.io/nonexist.fossil'
|
stderr '^go get rsc.io/nonexist.fossil/hello: GOVCS disallows using fossil for public rsc.io/nonexist.fossil; see ''go help vcs''$'
|
||||||
|
|
||||||
# bzr is disallowed by default
|
# bzr is disallowed by default
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.bzr/hello
|
! go get rsc.io/nonexist.bzr/hello
|
||||||
stderr 'go get rsc.io/nonexist.bzr/hello: GOVCS disallows using bzr for public rsc.io/nonexist.bzr'
|
stderr '^go get rsc.io/nonexist.bzr/hello: GOVCS disallows using bzr for public rsc.io/nonexist.bzr; see ''go help vcs''$'
|
||||||
|
|
||||||
# git is OK by default
|
# git is OK by default
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
|
|
@ -77,12 +77,12 @@ env GONOSUMDB='*'
|
||||||
# git can be disallowed
|
# git can be disallowed
|
||||||
env GOVCS=public:hg
|
env GOVCS=public:hg
|
||||||
! go get rsc.io/nonexist.git/hello
|
! go get rsc.io/nonexist.git/hello
|
||||||
stderr 'go get rsc.io/nonexist.git/hello: GOVCS disallows using git for public rsc.io/nonexist.git'
|
stderr '^go get rsc.io/nonexist.git/hello: GOVCS disallows using git for public rsc.io/nonexist.git; see ''go help vcs''$'
|
||||||
|
|
||||||
# hg can be disallowed
|
# hg can be disallowed
|
||||||
env GOVCS=public:git
|
env GOVCS=public:git
|
||||||
! go get rsc.io/nonexist.hg/hello
|
! go get rsc.io/nonexist.hg/hello
|
||||||
stderr 'go get rsc.io/nonexist.hg/hello: GOVCS disallows using hg for public rsc.io/nonexist.hg'
|
stderr '^go get rsc.io/nonexist.hg/hello: GOVCS disallows using hg for public rsc.io/nonexist.hg; see ''go help vcs''$'
|
||||||
|
|
||||||
# Repeat in GOPATH mode. Error texts slightly different.
|
# Repeat in GOPATH mode. Error texts slightly different.
|
||||||
|
|
||||||
|
|
@ -91,40 +91,40 @@ env GO111MODULE=off
|
||||||
# GOVCS stops go get
|
# GOVCS stops go get
|
||||||
env GOVCS='*:none'
|
env GOVCS='*:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
env GOPRIVATE='github.com/google'
|
env GOPRIVATE='github.com/google'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for private github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for private github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# public pattern works
|
# public pattern works
|
||||||
env GOPRIVATE='github.com/google'
|
env GOPRIVATE='github.com/google'
|
||||||
env GOVCS='public:all,private:none'
|
env GOVCS='public:all,private:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for private github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for private github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# private pattern works
|
# private pattern works
|
||||||
env GOPRIVATE='hubgit.com/google'
|
env GOPRIVATE='hubgit.com/google'
|
||||||
env GOVCS='private:all,public:none'
|
env GOVCS='private:all,public:none'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# other patterns work (for more patterns, see TestGOVCS)
|
# other patterns work (for more patterns, see TestGOVCS)
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS='github.com:svn|hg'
|
env GOVCS='github.com:svn|hg'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
env GOVCS='github.com/google/go-cmp/inner:git,github.com:svn|hg'
|
env GOVCS='github.com/google/go-cmp/inner:git,github.com:svn|hg'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp'
|
stderr '^package github.com/google/go-cmp: GOVCS disallows using git for public github.com/google/go-cmp; see ''go help vcs''$'
|
||||||
|
|
||||||
# bad patterns are reported (for more bad patterns, see TestGOVCSErrors)
|
# bad patterns are reported (for more bad patterns, see TestGOVCSErrors)
|
||||||
env GOVCS='git'
|
env GOVCS='git'
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: malformed entry in GOVCS \(missing colon\): "git"'
|
stderr '^package github.com/google/go-cmp: malformed entry in GOVCS \(missing colon\): "git"$'
|
||||||
|
|
||||||
env GOVCS=github.com:hg,github.com:git
|
env GOVCS=github.com:hg,github.com:git
|
||||||
! go get github.com/google/go-cmp
|
! go get github.com/google/go-cmp
|
||||||
stderr 'package github.com/google/go-cmp: unreachable pattern in GOVCS: "github.com:git" after "github.com:hg"'
|
stderr '^package github.com/google/go-cmp: unreachable pattern in GOVCS: "github.com:git" after "github.com:hg"$'
|
||||||
|
|
||||||
# bad GOVCS patterns do not stop commands that do not need to check VCS
|
# bad GOVCS patterns do not stop commands that do not need to check VCS
|
||||||
go list
|
go list
|
||||||
|
|
@ -133,19 +133,19 @@ go list
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.svn/hello
|
! go get rsc.io/nonexist.svn/hello
|
||||||
stderr 'package rsc.io/nonexist.svn/hello: GOVCS disallows using svn for public rsc.io/nonexist.svn'
|
stderr '^package rsc.io/nonexist.svn/hello: GOVCS disallows using svn for public rsc.io/nonexist.svn; see ''go help vcs''$'
|
||||||
|
|
||||||
# fossil is disallowed by default
|
# fossil is disallowed by default
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.fossil/hello
|
! go get rsc.io/nonexist.fossil/hello
|
||||||
stderr 'package rsc.io/nonexist.fossil/hello: GOVCS disallows using fossil for public rsc.io/nonexist.fossil'
|
stderr '^package rsc.io/nonexist.fossil/hello: GOVCS disallows using fossil for public rsc.io/nonexist.fossil; see ''go help vcs''$'
|
||||||
|
|
||||||
# bzr is disallowed by default
|
# bzr is disallowed by default
|
||||||
env GOPRIVATE=
|
env GOPRIVATE=
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
! go get rsc.io/nonexist.bzr/hello
|
! go get rsc.io/nonexist.bzr/hello
|
||||||
stderr 'package rsc.io/nonexist.bzr/hello: GOVCS disallows using bzr for public rsc.io/nonexist.bzr'
|
stderr '^package rsc.io/nonexist.bzr/hello: GOVCS disallows using bzr for public rsc.io/nonexist.bzr; see ''go help vcs''$'
|
||||||
|
|
||||||
# git is OK by default
|
# git is OK by default
|
||||||
env GOVCS=
|
env GOVCS=
|
||||||
|
|
@ -160,12 +160,12 @@ env GONOSUMDB='*'
|
||||||
# git can be disallowed
|
# git can be disallowed
|
||||||
env GOVCS=public:hg
|
env GOVCS=public:hg
|
||||||
! go get rsc.io/nonexist.git/hello
|
! go get rsc.io/nonexist.git/hello
|
||||||
stderr 'package rsc.io/nonexist.git/hello: GOVCS disallows using git for public rsc.io/nonexist.git'
|
stderr '^package rsc.io/nonexist.git/hello: GOVCS disallows using git for public rsc.io/nonexist.git; see ''go help vcs''$'
|
||||||
|
|
||||||
# hg can be disallowed
|
# hg can be disallowed
|
||||||
env GOVCS=public:git
|
env GOVCS=public:git
|
||||||
! go get rsc.io/nonexist.hg/hello
|
! go get rsc.io/nonexist.hg/hello
|
||||||
stderr 'package rsc.io/nonexist.hg/hello: GOVCS disallows using hg for public rsc.io/nonexist.hg'
|
stderr '^package rsc.io/nonexist.hg/hello: GOVCS disallows using hg for public rsc.io/nonexist.hg; see ''go help vcs''$'
|
||||||
|
|
||||||
-- go.mod --
|
-- go.mod --
|
||||||
module m
|
module m
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue