cmd/go: fix retrieving Mercurial commit timestamp under Windows

Use "hgdate" since the strftime filter is unsupported by Mercurial under
Windows.

Fixes #49841

Change-Id: I300898e51e324147aaf1bfe12ed17dea4bdd183d
Reviewed-on: https://go-review.googlesource.com/c/go/+/380077
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Trust: Jeremy Faller <jeremy@golang.org>
Trust: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
Mark Pulford 2022-01-22 16:03:28 +10:30 committed by Bryan Mills
parent 0f4bd92c4d
commit 55589e7531

View file

@ -164,7 +164,7 @@ func hgRemoteRepo(vcsHg *Cmd, rootDir string) (remoteRepo string, err error) {
func hgStatus(vcsHg *Cmd, rootDir string) (Status, error) {
// Output changeset ID and seconds since epoch.
out, err := vcsHg.runOutputVerboseOnly(rootDir, `log -l1 -T {node}:{date(date,"%s")}`)
out, err := vcsHg.runOutputVerboseOnly(rootDir, `log -l1 -T {node}:{date|hgdate}`)
if err != nil {
return Status{}, err
}
@ -173,6 +173,10 @@ func hgStatus(vcsHg *Cmd, rootDir string) (Status, error) {
var rev string
var commitTime time.Time
if len(out) > 0 {
// Strip trailing timezone offset.
if i := bytes.IndexByte(out, ' '); i > 0 {
out = out[:i]
}
rev, commitTime, err = parseRevTime(out)
if err != nil {
return Status{}, err