cmd/go/internal/modfetch: translate commit hashes to known tags during stat

For convenience on the command line, and also when translating
existing dependency management metadata, we accept commit hashes
or other references and translate them into proper semantic versions.
To date, that conversion has always used a pseudo-version.
But since we are talking to the code repo to look up the commit,
we might as well check it against known tags and use one of those
if possible. So for example

	go get rsc.io/quote@23179ee

used to add "rsc.io/quote v0.0.0-20180214005840-23179ee8a569" to go.mod.
But that commit is tagged v1.5.1, so now the same command records the version
as v1.5.1 instead.

Change-Id: I274c3ef914c758e6e0e9f8f6cfad23062600a918
Reviewed-on: https://go-review.googlesource.com/121857
Reviewed-by: Bryan C. Mills <bcmills@google.com>
9 files changed
tree: 69f41718573176c0a71e53f5391a67dece641487
  1. vendor/
  2. AUTHORS
  3. codereview.cfg
  4. CONTRIBUTING.md
  5. CONTRIBUTORS
  6. LICENSE
  7. main.go
  8. PATENTS
  9. README.md
README.md

Versioned Go Prototype (vgo)

This repository holds a prototype of what the go command might look like with integrated support for package versioning.

See research.swtch.com/vgo for documents about the design.

Download/Install

Use go get -u golang.org/x/vgo.

You can also manually git clone the repository to $GOPATH/src/golang.org/x/vgo.

Report Issues / Send Patches

See CONTRIBUTING.md.

This is still a very early prototype. You are likely to run into bugs. Please file bugs in the main Go issue tracker, golang.org/issue, and put the prefix x/vgo: in the issue title.

Thank you.