blob: e4d3c491f45611f45919ef3aca1c3a0d26efe6dd [file] [log] [blame]
# -u=patch will patch dependencies as far as possible, but not so far that they
# conflict with other command-line arguments.
go list -m all
stdout '^example.net/a v0.1.0 '
stdout '^example.net/b v0.1.0 '
go get -u=patch example.net/a@v0.2.0
go list -m all
stdout '^example.net/a v0.2.0 '
stdout '^example.net/b v0.1.1 ' # not v0.1.2, which requires …/a v0.3.0.
-- go.mod --
module example
go 1.16
require (
example.net/a v0.1.0
example.net/b v0.1.0 // indirect
)
replace (
example.net/a v0.1.0 => ./a
example.net/a v0.2.0 => ./a
example.net/a v0.3.0 => ./a
example.net/b v0.1.0 => ./b10
example.net/b v0.1.1 => ./b11
example.net/b v0.1.2 => ./b12
)
-- example.go --
package example
import _ "example.net/a"
-- a/go.mod --
module example.net/a
go 1.16
require example.net/b v0.1.0
-- a/a.go --
package a
import _ "example.net/b"
-- b10/go.mod --
module example.net/b
go 1.16
require example.net/a v0.1.0
-- b10/b.go --
package b
-- b10/b_test.go --
package b_test
import _ "example.net/a"
-- b11/go.mod --
module example.net/b
go 1.16
require example.net/a v0.2.0
-- b11/b.go --
package b
-- b11/b_test.go --
package b_test
import _ "example.net/a"
-- b12/go.mod --
module example.net/b
go 1.16
require example.net/a v0.3.0
-- b12/b.go --
package b
-- b12/b_test.go --
package b_test
import _ "example.net/a"