]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.cmdgo] cmd/go: allow expliticly setting -mod=readonly in workspace mode
authorMichael Matloob <matloob@golang.org>
Fri, 30 Jul 2021 18:10:25 +0000 (14:10 -0400)
committerMichael Matloob <matloob@golang.org>
Fri, 30 Jul 2021 22:29:46 +0000 (22:29 +0000)
Change-Id: Iedbe47d087d17984a9d839c13c4b7e6c1fa0deaa
Reviewed-on: https://go-review.googlesource.com/c/go/+/338594
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/internal/modload/init.go
src/cmd/go/testdata/script/work.txt

index a3337d6d23aaa3c3ebde7fad88760781e68814c9..53c73cb4a0812386178d44dfd809f5f919d38b6d 100644 (file)
@@ -947,8 +947,8 @@ func requirementsFromModFiles(ctx context.Context, modFiles []*modfile.File) *Re
 // wasn't provided. setDefaultBuildMod may be called multiple times.
 func setDefaultBuildMod() {
        if cfg.BuildModExplicit {
-               if inWorkspaceMode() {
-                       base.Fatalf("go: -mod can't be set explicitly when in workspace mode." +
+               if inWorkspaceMode() && cfg.BuildMod != "readonly" {
+                       base.Fatalf("go: -mod may only be set to readonly when in workspace mode." +
                                "\n\tRemove the -mod flag to use the default readonly value," +
                                "\n\tor set -workfile=off to disable workspace mode.")
                }
index eeaf92eaec4215966d96b45adc785f42d2ce74a2..bcbabbacef8d96e76ddff82060ea5db990cd5720 100644 (file)
@@ -21,10 +21,11 @@ go list all # all includes both modules
 stdout 'example.com/a'
 stdout 'example.com/b'
 
-# -mod can't be set in workspace mode, even to readonly
-! go list -mod=readonly all
-stderr '^go: -mod can''t be set explicitly'
-go list -mod=readonly -workfile=off all
+# -mod can only be set to readonly in workspace mode
+go list -mod=readonly all
+! go list -mod=mod all
+stderr '^go: -mod may only be set to readonly when in workspace mode'
+go list -mod=mod -workfile=off all
 
 # Test that duplicates in the directory list return an error
 cp go.work go.work.backup