| env GO111MODULE=on |
| env GOPROXY=direct |
| env GOSUMDB=off |
| |
| # Testing that a pseudo-version is based on the semantically-latest |
| # tag that appears in any commit that is a (transitive) parent of the commit |
| # supplied to 'go get', regardless of branches |
| |
| [!net] skip |
| [!exec:git] skip |
| |
| # For this test repository: |
| # tag v0.2.1 is most recent tag on master itself |
| # tag v0.2.2 is on branch2, which was then merged to master |
| # master is a merge commit with both tags as parents |
| # |
| # The pseudo-version hence sorts immediately after v0.2.2 rather |
| # than v0.2.1, even though the v0.2.2 tag is not on master. |
| |
| go get -d vcs-test.golang.org/git/tagtests.git@master |
| go list -m all |
| stdout '^vcs-test.golang.org/git/tagtests.git v0.2.3-0\.' |
| |
| -- go.mod -- |
| module x |
| |
| go 1.12 |
| -- x.go -- |
| package x |
| |
| import _ "vcs-test.golang.org/git/tagtests.git" |
| -- gen_testtags.sh -- |
| #!/bin/bash |
| |
| # This is not part of the test. |
| # Run this to generate and update the repository on vcs-test.golang.org. |
| |
| set -euo pipefail |
| cd "$(dirname "$0")" |
| rm -rf tagtests |
| mkdir tagtests |
| cd tagtests |
| |
| git init |
| echo module vcs-test.golang.org/git/tagtests.git >go.mod |
| echo package tagtests >tagtests.go |
| git add go.mod tagtests.go |
| git commit -m 'create module tagtests' |
| |
| git branch b |
| |
| echo v0.2.1 >v0.2.1 |
| git add v0.2.1 |
| git commit -m v0.2.1 |
| git tag v0.2.1 |
| |
| git checkout b |
| echo v0.2.2 >v0.2.2 |
| git add v0.2.2 |
| git commit -m v0.2.2 |
| git tag v0.2.2 |
| |
| git checkout master |
| git merge b -m merge |
| |
| zip -r ../tagtests.zip . |
| gsutil cp ../tagtests.zip gs://vcs-test/git/tagtests.zip |