diff options
| author | Julie Qiu <julie@golang.org> | 2021-01-24 22:31:47 -0500 |
|---|---|---|
| committer | Julie Qiu <julie@golang.org> | 2021-01-25 16:55:08 +0000 |
| commit | cd0dc1fcf8bc93ad18ef5c917343b69d7f06b56d (patch) | |
| tree | 6e6eb063a1f1aa2dd50bb92a4ba7d924d3f71c12 /internal/stdlib | |
| parent | 8295319c9e1949ec606cd587e7112067c6d72906 (diff) | |
| download | go-x-pkgsite-cd0dc1fcf8bc93ad18ef5c917343b69d7f06b56d.tar.xz | |
internal/stdlib: fix getGoRepo for requests to master
getGoRepo currently looks for a "master" tag when fetching the master
repo, instead of at the master branch. This is now fixed.
However, stdlib.semanticVersion still returns "master" when the
requestedVersion is "master", instead of returning a resolved semantic
version, so a fetch request for std@master will still result in a 500. A
comment is added to fix this in the future.
In a future CL, a fake pseudoversion will need to be constructed in
order to resolve std@master to a semantic version.
For golang/go#43890
Change-Id: I9e68b91d8c9e0bea6f6751d834853b852f0d532b
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/286153
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Trust: Julie Qiu <julie@golang.org>
Diffstat (limited to 'internal/stdlib')
| -rw-r--r-- | internal/stdlib/stdlib.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/internal/stdlib/stdlib.go b/internal/stdlib/stdlib.go index 2f683a89..1b64bbf9 100644 --- a/internal/stdlib/stdlib.go +++ b/internal/stdlib/stdlib.go @@ -180,13 +180,19 @@ var TestCommitTime = time.Date(2019, 9, 4, 1, 2, 3, 0, time.UTC) func getGoRepo(version string) (_ *git.Repository, err error) { defer derrors.Wrap(&err, "getGoRepo(%q)", version) - tag, err := TagForVersion(version) - if err != nil { - return nil, err + var ref plumbing.ReferenceName + if version == "master" { + ref = plumbing.HEAD + } else { + tag, err := TagForVersion(version) + if err != nil { + return nil, err + } + ref = plumbing.NewTagReferenceName(tag) } return git.Clone(memory.NewStorage(), nil, &git.CloneOptions{ URL: GoRepoURL, - ReferenceName: plumbing.NewTagReferenceName(tag), + ReferenceName: ref, SingleBranch: true, Depth: 1, Tags: git.NoTags, @@ -375,6 +381,8 @@ func semanticVersion(requestedVersion string) (_ string, err error) { } return latestVersion, nil case "master": + // TODO(https://github.com/golang/go/issues/43890): a semantic version + // needs to be returned here. return requestedVersion, nil default: for _, v := range knownVersions { |
