]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.10] cmd/go/internal/get: move wildcard-trimming to before CheckIm...
authorBryan C. Mills <bcmills@google.com>
Fri, 14 Dec 2018 02:42:33 +0000 (21:42 -0500)
committerFilippo Valsorda <filippo@golang.org>
Fri, 14 Dec 2018 18:37:24 +0000 (18:37 +0000)
commit25bee965c685e3f35c10076648685e22e59fd656
tree1da95f569bb8736df0140169810ab7950f2ea270
parentf40c04941aee1735de27bb2dcb71ebedba815953
[release-branch.go1.10] cmd/go/internal/get: move wildcard-trimming to before CheckImportPath

Previously, RepoRootForImportPath trimmed certain "..." wildcards from
package patterns (even though its name suggests that the argument must
be an actual import path). It trimmed at the first path element that
was literally "..." (although wildcards in general may appear within a
larger path element), and relied on a subsequent check in
RepoRootForImportPath to catch confusing resolutions.

However, that causes 'go get' with wildcard patterns in fresh paths to
fail as of CL 154101: a wildcard pattern is not a valid import path,
and fails the path check. (The existing Test{Vendor,Go}Get* packages
in go_test.go and vendor_test.go catch the failure, but they are all
skipped when the "-short" flag is set — including in all.bash — and we
had forgotten to run them separately.)

We now trim the path before any element that contains a wildcard, and
perform the path check (and repo resolution) on only that prefix. It
is possible that the expanded path after fetching the repo will be
invalid, but a repository can contain directories that are not valid
import paths in general anyway.

Fixes #29247

Change-Id: I70fb2f7fc6603b7d339fd6c02e8cdeacfc93fc4b
Reviewed-on: https://go-review.googlesource.com/c/154108
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-on: https://go-review.googlesource.com/c/154111
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
src/cmd/go/internal/get/get.go
src/cmd/go/internal/get/vcs.go