diff options
author | Bryan C. Mills <bcmills@google.com> | 2019-05-31 15:24:49 -0400 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2019-05-31 21:14:52 +0000 |
commit | 48a53d6eafaa80560629836939a8d0ee06569e6e (patch) | |
tree | b893f4045345101d7f08140d3324d49cd23e0bfb /src/cmd/go/internal/modfetch/coderepo.go | |
parent | f61fa116ea613c501884ad32687ee33c6edf10a2 (diff) | |
download | go-48a53d6eafaa80560629836939a8d0ee06569e6e.tar.gz go-48a53d6eafaa80560629836939a8d0ee06569e6e.zip |
cmd/go/internal/modfetch: use the resolved version to search for tags in (*codeRepo).convert
Previously, we used the passed-in statVers as the basis for tag search,
but it is not always valid.
Instead, use info.Name, which (by precondition) must be valid.
Updates #32161
Updates #27171
Change-Id: Iaecb5043bdf2fefd26fbe3f8e3714b07d22f580f
Reviewed-on: https://go-review.googlesource.com/c/go/+/179857
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
Diffstat (limited to 'src/cmd/go/internal/modfetch/coderepo.go')
-rw-r--r-- | src/cmd/go/internal/modfetch/coderepo.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cmd/go/internal/modfetch/coderepo.go b/src/cmd/go/internal/modfetch/coderepo.go index 3581f93fe7..59f2cc70b5 100644 --- a/src/cmd/go/internal/modfetch/coderepo.go +++ b/src/cmd/go/internal/modfetch/coderepo.go @@ -208,6 +208,11 @@ func (r *codeRepo) Latest() (*RevInfo, error) { return r.convert(info, "") } +// convert converts a version as reported by the code host to a version as +// interpreted by the module system. +// +// If statVers is a valid module version, it is used for the Version field. +// Otherwise, the Version is derived from the passed-in info and recent tags. func (r *codeRepo) convert(info *codehost.RevInfo, statVers string) (*RevInfo, error) { info2 := &RevInfo{ Name: info.Name, @@ -268,7 +273,7 @@ func (r *codeRepo) convert(info *codehost.RevInfo, statVers string) (*RevInfo, e } // Otherwise make a pseudo-version. if info2.Version == "" { - tag, _ := r.code.RecentTag(statVers, p) + tag, _ := r.code.RecentTag(info.Name, p) v = tagToVersion(tag) // TODO: Check that v is OK for r.pseudoMajor or else is OK for incompatible. info2.Version = PseudoVersion(r.pseudoMajor, v, info.Time, info.Short) |