Conflicts:
- src/cmd/go/internal/modload/init.go
- src/cmd/go/internal/modload/load.go
Merge List:
+ 2021-07-28
9eee0ed439 cmd/go: fix go.mod file name printed in error messages for replacements
+ 2021-07-28
b39e0f461c runtime: don't crash on nil pointers in checkptrAlignment
+ 2021-07-27
7cd10c1149 cmd/go: use .mod instead of .zip to determine if version has go.mod file
+ 2021-07-27
c8cf0f74e4 cmd/go: add missing flag in UsageLine
+ 2021-07-27
7ba8e796c9 testing: clarify T.Name returns a distinct name of the running test
+ 2021-07-27
33ff155970 go/types: preserve untyped constants on the RHS of a shift expression
+ 2021-07-26
840e583ff3 runtime: correct variable name in comment
+ 2021-07-26
bfbb288574 runtime: remove adjustTimers counter
+ 2021-07-26
9c81fd53b3 cmd/vet: add missing copyright header
+ 2021-07-26
ecaa6816bf doc: clarify non-nil zero length slice to array pointer conversion
+ 2021-07-26
1868f8296e crypto/x509: update iOS bundled roots to version 55188.120.1.0.1
+ 2021-07-25
849b791129 spec: use consistent capitalization for rune literal hex constants
+ 2021-07-23
0914646ab9 doc/1.17: fix two dead rfc links
+ 2021-07-22
052da5717e cmd/compile: do not change field offset in ABI analysis
+ 2021-07-22
798ec73519 runtime: don't clear timerModifiedEarliest if adjustTimers is 0
+ 2021-07-22
fdb45acd1f runtime: move mem profile sampling into m-acquired section
+ 2021-07-21
3e48c0381f reflect: add missing copyright header
+ 2021-07-21
48c88f1b1b reflect: add Value.CanConvert
+ 2021-07-20
9e26569293 cmd/go: don't add C compiler ID to hash for standard library
+ 2021-07-20
d568e6e075 runtime/debug: skip TestPanicOnFault on netbsd/arm
+ 2021-07-19
c8f4e6152d spec: correct example comment in Conversions from slice to array
+ 2021-07-19
1d91551b73 time: correct typo in documentation for UnixMicro
+ 2021-07-19
404127c30f cmd/compile: fix off-by-one error in traceback argument counting
+ 2021-07-19
6298cfe672 cmd/compile: fix typo in fatal message of builtinCall
+ 2021-07-19
49402bee36 cmd/{compile,link}: fix bug in map.zero handling
+ 2021-07-18
a66190ecee test/bench/go1: fix size for RegexpMatchMedium_32
+ 2021-07-18
650fc2117a text/scanner: use Go convention in Position doc comment
+ 2021-07-16
aa4e0f528e net/http: correct capitalization in cancelTimeBody comment
+ 2021-07-15
0941dbca6a testing: clarify in docs that TestMain is advanced
+ 2021-07-15
69728ead87 cmd/go: update error messages in tests to match CL 332573
+ 2021-07-15
c1cc9f9c3d cmd/compile: fix lookup package of redeclared dot import symbol
+ 2021-07-15
21a04e3335 doc/go1.17: mention GOARCH=loong64
+ 2021-07-14
2b00a54baf go/build, runtime/internal/sys: reserve GOARCH=loong64
+ 2021-07-14
60ddf42b46 cmd/go: change link in error message from /wiki to /doc.
+ 2021-07-13
d8f348a589 cmd/go: remove a duplicated word from 'go help mod graph'
+ 2021-07-12
a98589711d crypto/tls: test key type when casting
+ 2021-07-12
cfbd73ba33 doc/go1.17: editing pass over the "Compiler" section
+ 2021-07-09
ab4085ce84 runtime/pprof: call runtime.GC twice in memory profile test
+ 2021-07-08
296ddf2a93 net: filter bad names from Lookup functions instead of hard failing
+ 2021-07-08
ce76298ee7 Update oudated comment
+ 2021-07-08
2ca44fe221 doc/go1.17: linkify time.UnixMilli and time.UnixMicro
+ 2021-07-07
5c59e11f5e cmd/compile: remove special-casing of blank in types.sconv{,2}
+ 2021-07-07
b003a8b1ae cmd/compile: optimize types.sconv
+ 2021-07-07
11f5df2d67 cmd/compile: extract pkgqual from symfmt
+ 2021-07-07
991fd381d5 cmd/go: don't lock .mod and .sum files for read in overlay
+ 2021-07-07
186a3bb4b0 cmd/go/internal/modfetch/codehost: skip hg tests if no hg binary is present
+ 2021-07-07
00c00558e1 cmd/go/internal/modload: remove unused functions
+ 2021-07-07
f264879f74 cmd/go/internal/modload: fix an apparent typo in the AutoRoot comment
+ 2021-07-07
c96833e5ba doc: remove stale comment about arm64 port
Change-Id: Ide5fb43a0fcb5d998386ed60dfd6ced241238a44
}
}
if !dirty {
- return
+ return nil
}
- if cfg.BuildMod == "readonly" {
- base.Fatalf("go: updates to go.sum needed, disabled by -mod=readonly")
+ if readonly {
+ return ErrGoSumDirty
}
+ if _, ok := fsys.OverlayPath(GoSumFile); ok {
+ base.Fatalf("go: updates to go.sum needed, but go.sum is part of the overlay specified with -overlay")
+ }
// Make a best-effort attempt to acquire the side lock, only to exclude
// previous versions of the 'go' command from making simultaneous edits.
dir = filepath.Clean(dir)
}
- if dir == modRoot {
- return targetPrefix
- }
- if strings.HasPrefix(dir, modRoot+string(filepath.Separator)) {
- suffix := filepath.ToSlash(dir[len(modRoot):])
- if strings.HasPrefix(suffix, "/vendor/") {
- return strings.TrimPrefix(suffix, "/vendor/")
+ var longestPrefix string
+ var longestPrefixPath string
+ var longestPrefixVersion module.Version
+ for _, v := range mms.Versions() {
+ modRoot := mms.ModRoot(v)
+ if dir == modRoot {
+ return mms.PathPrefix(v), v
+ }
+ if strings.HasPrefix(dir, modRoot+string(filepath.Separator)) {
+ pathPrefix := MainModules.PathPrefix(v)
+ if pathPrefix > longestPrefix {
+ longestPrefix = pathPrefix
+ longestPrefixVersion = v
+ suffix := filepath.ToSlash(dir[len(modRoot):])
+ if strings.HasPrefix(suffix, "/vendor/") {
+ longestPrefixPath = strings.TrimPrefix(suffix, "/vendor/")
+ }
+ longestPrefixPath = mms.PathPrefix(v) + suffix
+ }
}
- return targetPrefix + suffix
}
- return "."
+ if len(longestPrefix) > 0 {
+ return longestPrefixPath, longestPrefixVersion
+ }
+
+ return ".", module.Version{}
}
- // TargetPackages returns the list of packages in the target (top-level) module
- // matching pattern, which may be relative to the working directory, under all
- // build tag settings.
- func TargetPackages(ctx context.Context, pattern string) *search.Match {
- // TargetPackages is relative to the main module, so ensure that the main
- // module is a thing that can contain packages.
- LoadModFile(ctx) // Sets Target.
- ModRoot() // Emits an error if Target cannot contain packages.
-
- m := search.NewMatch(pattern)
- matchPackages(ctx, m, imports.AnyTags(), omitStd, MainModules.Versions())
- return m
- }
-
// ImportMap returns the actual package import path
// for an import path found in source code.
// If the given import path does not appear in the source code