mirror of
https://github.com/golang/go
synced 2024-11-26 14:26:51 -07:00
cmd/go: reject 'go list -m MOD@patch' when no existing version of MOD is required
Noticed while debugging failing tests for #36460. Fixes #44788 Change-Id: Ic2cf511d871b29284f7372920f6f7d452825dd63 Reviewed-on: https://go-review.googlesource.com/c/go/+/298651 Trust: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
a416efef5a
commit
9a40dee3ee
@ -78,7 +78,7 @@ func listModules(ctx context.Context, args []string, listVersions, listRetracted
|
|||||||
if i := strings.Index(arg, "@"); i >= 0 {
|
if i := strings.Index(arg, "@"); i >= 0 {
|
||||||
path := arg[:i]
|
path := arg[:i]
|
||||||
vers := arg[i+1:]
|
vers := arg[i+1:]
|
||||||
var current string
|
current := "none"
|
||||||
for _, m := range buildList {
|
for _, m := range buildList {
|
||||||
if m.Path == path {
|
if m.Path == path {
|
||||||
current = m.Version
|
current = m.Version
|
||||||
|
@ -330,7 +330,7 @@ func newQueryMatcher(path string, query, current string, allowed AllowedFunc) (*
|
|||||||
}
|
}
|
||||||
|
|
||||||
case query == "patch":
|
case query == "patch":
|
||||||
if current == "none" {
|
if current == "" || current == "none" {
|
||||||
return nil, &NoPatchBaseError{path}
|
return nil, &NoPatchBaseError{path}
|
||||||
}
|
}
|
||||||
if current == "" {
|
if current == "" {
|
||||||
|
@ -122,7 +122,7 @@ var queryTests = []struct {
|
|||||||
{path: queryRepo, query: "upgrade", allow: "NOMATCH", err: `no matching versions for query "upgrade"`},
|
{path: queryRepo, query: "upgrade", allow: "NOMATCH", err: `no matching versions for query "upgrade"`},
|
||||||
{path: queryRepo, query: "upgrade", current: "v1.9.9", allow: "NOMATCH", err: `vcs-test.golang.org/git/querytest.git@v1.9.9: disallowed module version`},
|
{path: queryRepo, query: "upgrade", current: "v1.9.9", allow: "NOMATCH", err: `vcs-test.golang.org/git/querytest.git@v1.9.9: disallowed module version`},
|
||||||
{path: queryRepo, query: "upgrade", current: "v1.99.99", err: `vcs-test.golang.org/git/querytest.git@v1.99.99: invalid version: unknown revision v1.99.99`},
|
{path: queryRepo, query: "upgrade", current: "v1.99.99", err: `vcs-test.golang.org/git/querytest.git@v1.99.99: invalid version: unknown revision v1.99.99`},
|
||||||
{path: queryRepo, query: "patch", current: "", vers: "v1.9.9"},
|
{path: queryRepo, query: "patch", current: "", err: `can't query version "patch" of module vcs-test.golang.org/git/querytest.git: no existing version is required`},
|
||||||
{path: queryRepo, query: "patch", current: "v0.1.0", vers: "v0.1.2"},
|
{path: queryRepo, query: "patch", current: "v0.1.0", vers: "v0.1.2"},
|
||||||
{path: queryRepo, query: "patch", current: "v1.9.0", vers: "v1.9.9"},
|
{path: queryRepo, query: "patch", current: "v1.9.0", vers: "v1.9.9"},
|
||||||
{path: queryRepo, query: "patch", current: "v1.9.10-pre1", vers: "v1.9.10-pre1"},
|
{path: queryRepo, query: "patch", current: "v1.9.10-pre1", vers: "v1.9.10-pre1"},
|
||||||
|
@ -23,8 +23,8 @@ stdout '^github.com/russross/blackfriday v1\.'
|
|||||||
go list -m github.com/russross/blackfriday@upgrade
|
go list -m github.com/russross/blackfriday@upgrade
|
||||||
stdout '^github.com/russross/blackfriday v1\.'
|
stdout '^github.com/russross/blackfriday v1\.'
|
||||||
|
|
||||||
go list -m github.com/russross/blackfriday@patch
|
! go list -m github.com/russross/blackfriday@patch
|
||||||
stdout '^github.com/russross/blackfriday v1\.'
|
stderr '^go list -m: github.com/russross/blackfriday@patch: can''t query version "patch" of module github.com/russross/blackfriday: no existing version is required$'
|
||||||
|
|
||||||
# If we're fetching directly from version control, ignored +incompatible
|
# If we're fetching directly from version control, ignored +incompatible
|
||||||
# versions should also be omitted by 'go list'.
|
# versions should also be omitted by 'go list'.
|
||||||
|
Loading…
Reference in New Issue
Block a user