]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: do not require the module cache to exist for 'go mod edit'
authorBryan C. Mills <bcmills@google.com>
Wed, 16 Jun 2021 18:48:45 +0000 (14:48 -0400)
committerBryan C. Mills <bcmills@google.com>
Mon, 21 Jun 2021 14:10:22 +0000 (14:10 +0000)
Updates #46695

Change-Id: I4afbc1401ef4183d94c1ac6271394fac1fff95ae
Reviewed-on: https://go-review.googlesource.com/c/go/+/328769
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/internal/modfetch/cache.go
src/cmd/go/testdata/script/mod_edit_no_modcache.txt [new file with mode: 0644]

index f3b58a172a6fc2808776c8ca63515dc4502d1540..b01b4674131e7af76436c5b5513b6dbc1c155cbe 100644 (file)
@@ -152,7 +152,7 @@ func lockVersion(mod module.Version) (unlock func(), err error) {
 // If err is nil, the caller MUST eventually call the unlock function.
 func SideLock() (unlock func(), err error) {
        if err := checkCacheDir(); err != nil {
-               base.Fatalf("go: %v", err)
+               return nil, err
        }
 
        path := filepath.Join(cfg.GOMODCACHE, "cache", "lock")
diff --git a/src/cmd/go/testdata/script/mod_edit_no_modcache.txt b/src/cmd/go/testdata/script/mod_edit_no_modcache.txt
new file mode 100644 (file)
index 0000000..ced15bb
--- /dev/null
@@ -0,0 +1,15 @@
+# 'go mod edit' opportunistically locks the side-lock file in the module cache,
+# for compatibility with older versions of the 'go' command.
+# It does not otherwise depend on the module cache, so it should not
+# fail if the module cache directory cannot be created.
+
+[root] skip
+
+mkdir $WORK/readonly
+chmod 0555 $WORK/readonly
+env GOPATH=$WORK/readonly/nonexist
+
+go mod edit -go=1.17
+
+-- go.mod --
+module example.com/m