aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modfetch/coderepo.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2019-05-31 15:24:49 -0400
committerBryan C. Mills <bcmills@google.com>2019-05-31 21:14:52 +0000
commit48a53d6eafaa80560629836939a8d0ee06569e6e (patch)
treeb893f4045345101d7f08140d3324d49cd23e0bfb /src/cmd/go/internal/modfetch/coderepo.go
parentf61fa116ea613c501884ad32687ee33c6edf10a2 (diff)
downloadgo-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.go7
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)