diff --git a/src/cmd/go/testdata/script/reuse_hg.txt b/src/cmd/go/testdata/script/reuse_hg.txt new file mode 100644 index 00000000000..ebc7643733d --- /dev/null +++ b/src/cmd/go/testdata/script/reuse_hg.txt @@ -0,0 +1,483 @@ +skip + +[short] skip +[!hg] skip + +env GO111MODULE=on +env GOPROXY=direct +env GOSUMDB=off + +# go mod download with the pseudo-version should invoke hg but not have a TagSum or Ref. +go mod download -x -json vcs-test.golang.org/hg/hello.hg@v0.0.0-20170922010558-fc3a09f3dc5c +stderr 'hg( .*)* pull' +cp stdout hellopseudo.json +! stdout '"(Query|TagPrefix|TagSum|Ref)"' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"RepoSum"' +go clean -modcache + +# go mod download vcstest/hello should invoke hg, print origin info +go mod download -x -json vcs-test.golang.org/hg/hello.hg@latest +stderr 'hg( .*)* pull' +cp stdout hello.json +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +stdout '"Query": "latest"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"RepoSum"' + +# pseudo-version again should not invoke hg pull (it has the version from the @latest query) +# but still be careful not to include a TagSum or a Ref, especially not Ref set to HEAD, +# which is easy to do when reusing the cached version from the @latest query. +go mod download -x -json vcs-test.golang.org/hg/hello.hg@v0.0.0-20170922010558-fc3a09f3dc5c +! stderr 'hg( .*)* pull' +cp stdout hellopseudo2.json +cmpenv hellopseudo.json hellopseudo2.json + +# go mod download vcstest/hello@hash needs to check TagSum to find pseudoversion base. +go mod download -x -json vcs-test.golang.org/hg/hello.hg@fc3a09f3dc5c +! stderr 'hg( .*)* pull' +cp stdout hellohash.json +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"Query": "fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"RepoSum"' + +# go mod download vcstest/hello/v9 should fail, still print origin info +! go mod download -x -json vcs-test.golang.org/hg/hello.hg/v9@latest +cp stdout hellov9.json +stdout '"Version": "latest"' +stdout '"Error":.*no matching versions' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout 'RepoSum' + +# go mod download vcstest/hello/sub/v9 should also fail, print origin info with TagPrefix +! go mod download -x -json vcs-test.golang.org/hg/hello.hg/sub/v9@latest +cp stdout hellosubv9.json +stdout '"Version": "latest"' +stdout '"Error":.*no matching versions' +stdout '"TagPrefix": "sub/"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout 'RepoSum' + +# go mod download vcstest/hello@nonexist should fail, still print origin info +! go mod download -x -json vcs-test.golang.org/hg/hello.hg@nonexist +cp stdout hellononexist.json +stdout '"Version": "nonexist"' +stdout '"Error":.*unknown revision nonexist' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' + +# go mod download vcstest/hello@1234567890123456789012345678901234567890 should fail, still print origin info +# (40 hex digits is assumed to be a full hash and is a slightly different code path from @nonexist) +! go mod download -x -json vcs-test.golang.org/hg/hello.hg@1234567890123456789012345678901234567890 +cp stdout hellononhash.json +stdout '"Version": "1234567890123456789012345678901234567890"' +stdout '"Error":.*unknown revision 1234567890123456789012345678901234567890' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' + +# go mod download vcstest/hello@v0.0.0-20220101120101-123456789abc should fail, still print origin info +# (non-existent pseudoversion) +! go mod download -x -json vcs-test.golang.org/hg/hello.hg@v0.0.0-20220101120101-123456789abc +cp stdout hellononpseudo.json +stdout '"Version": "v0.0.0-20220101120101-123456789abc"' +stdout '"Error":.*unknown revision 123456789abc' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' + +# go mod download vcstest/tagtests should invoke hg, print origin info +go mod download -x -json vcs-test.golang.org/hg/tagtests.hg@latest +stderr 'hg( .*)* pull' +cp stdout tagtests.json +stdout '"Version": "v0.2.2"' +stdout '"Query": "latest"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/tags/v0.2.2"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +! stdout '"RepoSum"' + +# go mod download vcstest/tagtests@v0.2.2 should print origin info, no TagSum needed +go mod download -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +cp stdout tagtestsv022.json +stdout '"Version": "v0.2.2"' +! stdout '"Query":' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +! stdout '"TagSum"' +stdout '"Ref": "refs/tags/v0.2.2"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +! stdout '"RepoSum"' + +# go mod download vcstest/tagtests@master needs a TagSum again +go mod download -x -json vcs-test.golang.org/hg/tagtests.hg@master +cp stdout tagtestsmaster.json +stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' +stdout '"Query": "master"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/heads/master"' +stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' +! stdout '"RepoSum"' + +# go mod download vcstest/prefixtagtests should invoke hg, print origin info +go mod download -x -json vcs-test.golang.org/hg/prefixtagtests.hg/sub@latest +stderr 'hg( .*)* pull' +cp stdout prefixtagtests.json +stdout '"Version": "v0.0.10"' +stdout '"Query": "latest"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/prefixtagtests"' +stdout '"Subdir": "sub"' +stdout '"TagPrefix": "sub/"' +stdout '"TagSum": "t1:YGSbWkJ8dn9ORAr[+]BlKHFK/2ZhXLb9hVuYfTZ9D8C7g="' +stdout '"Ref": "refs/tags/sub/v0.0.10"' +stdout '"Hash": "2b7c4692e12c109263cab51b416fcc835ddd7eae"' +! stdout '"RepoSum"' + +# go mod download of a bunch of these should fail (some are invalid) but write good JSON for later +! go mod download -json vcs-test.golang.org/hg/hello.hg@latest vcs-test.golang.org/hg/hello.hg/v9@latest vcs-test.golang.org/hg/hello.hg/sub/v9@latest vcs-test.golang.org/hg/tagtests.hg@latest vcs-test.golang.org/hg/tagtests.hg@v0.2.2 vcs-test.golang.org/hg/tagtests.hg@master +cp stdout all.json + +# clean the module cache, make sure that makes go mod download re-run hg pull, clean again +go clean -modcache +go mod download -x -json vcs-test.golang.org/hg/hello.hg@latest +stderr 'hg( .*)* pull' +go clean -modcache + +# reuse go mod download vcstest/hello result +go clean -modcache +go mod download -reuse=hello.json -x -json vcs-test.golang.org/hg/hello.hg@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/hello pseudoversion result +go clean -modcache +go mod download -reuse=hellopseudo.json -x -json vcs-test.golang.org/hg/hello.hg@v0.0.0-20170922010558-fc3a09f3dc5c +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +! stdout '"(Query|TagPrefix|TagSum|Ref)"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/hello@hash +go clean -modcache +go mod download -reuse=hellohash.json -x -json vcs-test.golang.org/hg/hello.hg@fc3a09f3dc5c +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Query": "fc3a09f3dc5c"' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +! stdout '"(TagPrefix|Ref)"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/hello/v9 error result +go clean -modcache +! go mod download -reuse=hellov9.json -x -json vcs-test.golang.org/hg/hello.hg/v9@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Error":.*no matching versions' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/hello/sub/v9 error result +go clean -modcache +! go mod download -reuse=hellosubv9.json -x -json vcs-test.golang.org/hg/hello.hg/sub/v9@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Error":.*no matching versions' +stdout '"TagPrefix": "sub/"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Ref": "HEAD"' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/hello@nonexist +go clean -modcache +! go mod download -reuse=hellononexist.json -x -json vcs-test.golang.org/hg/hello.hg@nonexist +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "nonexist"' +stdout '"Error":.*unknown revision nonexist' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' +! stdout '"(Dir|Info|GoMod|Zip)"' + +# reuse go mod download vcstest/hello@1234567890123456789012345678901234567890 +go clean -modcache +! go mod download -reuse=hellononhash.json -x -json vcs-test.golang.org/hg/hello.hg@1234567890123456789012345678901234567890 +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "1234567890123456789012345678901234567890"' +stdout '"Error":.*unknown revision 1234567890123456789012345678901234567890' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' +! stdout '"(Dir|Info|GoMod|Zip)"' + +# reuse go mod download vcstest/hello@v0.0.0-20220101120101-123456789abc +go clean -modcache +! go mod download -reuse=hellononpseudo.json -x -json vcs-test.golang.org/hg/hello.hg@v0.0.0-20220101120101-123456789abc +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.0.0-20220101120101-123456789abc"' +stdout '"Error":.*unknown revision 123456789abc' +stdout '"RepoSum": "r1:c0/9JCZ25lxoBiK3[+]3BhACU4giH49flcJmBynJ[+]Jvmc="' +! stdout '"(TagPrefix|TagSum|Ref|Hash)"' +! stdout '"(Dir|Info|GoMod|Zip)"' + +# reuse go mod download vcstest/tagtests result +go clean -modcache +go mod download -reuse=tagtests.json -x -json vcs-test.golang.org/hg/tagtests.hg@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.2.2"' +stdout '"Query": "latest"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/tags/v0.2.2"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/tagtests@v0.2.2 result +go clean -modcache +go mod download -reuse=tagtestsv022.json -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.2.2"' +! stdout '"Query":' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +! stdout '"TagSum"' +stdout '"Ref": "refs/tags/v0.2.2"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/tagtests@master result +go clean -modcache +go mod download -reuse=tagtestsmaster.json -x -json vcs-test.golang.org/hg/tagtests.hg@master +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' +stdout '"Query": "master"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/heads/master"' +stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# reuse go mod download vcstest/tagtests@master result again with all.json +go clean -modcache +go mod download -reuse=all.json -x -json vcs-test.golang.org/hg/tagtests.hg@master +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Version": "v0.2.3-0.20190509225625-c7818c24fa2f"' +stdout '"Query": "master"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/heads/master"' +stdout '"Hash": "c7818c24fa2f3f714c67d0a6d3e411c85a518d1f"' +! stdout '"(Dir|Info|GoMod|Zip|RepoSum)"' + +# go mod download vcstest/prefixtagtests result with json +go clean -modcache +go mod download -reuse=prefixtagtests.json -x -json vcs-test.golang.org/hg/prefixtagtests.hg/sub@latest +! stderr 'hg( .*)* pull' +stdout '"Version": "v0.0.10"' +stdout '"Query": "latest"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/prefixtagtests"' +stdout '"Subdir": "sub"' +stdout '"TagPrefix": "sub/"' +stdout '"TagSum": "t1:YGSbWkJ8dn9ORAr[+]BlKHFK/2ZhXLb9hVuYfTZ9D8C7g="' +stdout '"Ref": "refs/tags/sub/v0.0.10"' +stdout '"Hash": "2b7c4692e12c109263cab51b416fcc835ddd7eae"' +! stdout '"(Dir|Info|GoMod|Zip)"' + +# reuse the bulk results with all.json +go clean -modcache +! go mod download -reuse=all.json -json vcs-test.golang.org/hg/hello.hg@latest vcs-test.golang.org/hg/hello.hg/v9@latest vcs-test.golang.org/hg/hello.hg/sub/v9@latest vcs-test.golang.org/hg/tagtests.hg@latest vcs-test.golang.org/hg/tagtests.hg@v0.2.2 vcs-test.golang.org/hg/tagtests.hg@master +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +! stdout '"(Dir|Info|GoMod|Zip)"' + +# reuse attempt with stale hash should reinvoke hg, not report reuse +go clean -modcache +cp tagtestsv022.json tagtestsv022badhash.json +replace '57952' '56952XXX' tagtestsv022badhash.json +go mod download -reuse=tagtestsv022badhash.json -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +stderr 'hg( .*)* pull' +! stdout '"Reuse": true' +stdout '"Version": "v0.2.2"' +! stdout '"Query"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"(TagPrefix|TagSum|RepoSum)"' +stdout '"Ref": "refs/tags/v0.2.2"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +stdout '"Dir"' +stdout '"Info"' +stdout '"GoMod"' +stdout '"Zip"' + +# reuse with stale repo URL +go clean -modcache +cp tagtestsv022.json tagtestsv022badurl.json +replace 'hg/tagtests\"' 'hg/tagtestsXXX\"' tagtestsv022badurl.json +go mod download -reuse=tagtestsv022badurl.json -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +! stdout '"Reuse": true' +stdout '"URL": ".*/hg/tagtests"' +stdout '"Dir"' +stdout '"Info"' +stdout '"GoMod"' +stdout '"Zip"' + +# reuse with stale VCS +go clean -modcache +cp tagtestsv022.json tagtestsv022badvcs.json +replace '\"hg\"' '\"hgXXX\"' tagtestsv022badvcs.json +go mod download -reuse=tagtestsv022badvcs.json -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +! stdout '"Reuse": true' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"RepoSum"' + +# reuse with stale Dir +go clean -modcache +cp tagtestsv022.json tagtestsv022baddir.json +replace '\t\t\"Ref\":' '\t\t\"Subdir\": \"subdir\",\n\t\t\"Ref\":' tagtestsv022baddir.json +go mod download -reuse=tagtestsv022baddir.json -x -json vcs-test.golang.org/hg/tagtests.hg@v0.2.2 +! stdout '"Reuse": true' +stdout '"URL": ".*/hg/tagtests"' +! stdout '"RepoSum"' + +# reuse with stale TagSum +go clean -modcache +cp tagtests.json tagtestsbadtagsum.json +replace 'sMEOGo=' 'sMEoGo=XXX' tagtestsbadtagsum.json +go mod download -reuse=tagtestsbadtagsum.json -x -json vcs-test.golang.org/hg/tagtests.hg@latest +! stdout '"Reuse": true' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +! stdout '"RepoSum"' + +# go list on repo with no tags +go clean -modcache +go list -x -json -m -retracted -versions vcs-test.golang.org/hg/hello.hg@latest +stderr 'hg( .*)* pull' +cp stdout hellolist.json +! stdout '"Versions"' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +stdout '"Query": "latest"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"RepoSum"' + +# reuse go list on repo with no tags +go clean -modcache +go list -x -reuse=hellolist.json -json -m -retracted -versions vcs-test.golang.org/hg/hello.hg@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +! stdout '"Versions"' +stdout '"Version": "v0.0.0-20170922010558-fc3a09f3dc5c"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/hello"' +stdout '"Query": "latest"' +! stdout '"TagPrefix"' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' +stdout '"Hash": "fc3a09f3dc5cfe0d7a743ea18f1f5226e68b3777"' +! stdout '"RepoSum"' + +# reuse with stale list +go clean -modcache +cp hellolist.json hellolistbad.json +replace '47DEQ' 'ZZZ' hellolistbad.json +go clean -modcache +go list -x -reuse=hellolistbad.json -json -m -retracted -versions vcs-test.golang.org/hg/hello.hg@latest +stderr 'hg( .*)* pull' +! stdout '"Reuse": true' +stdout '"TagSum": "t1:47DEQpj8HBSa[+]/TImW[+]5JCeuQeRkm5NMpJWZG3hSuFU="' + +# go list on repo with tags +go clean -modcache +go list -x -json -m -retracted -versions vcs-test.golang.org/hg/tagtests.hg@latest +cp stdout taglist.json +stderr 'hg( .*)* pull' +stdout '"Versions":' +stdout '"v0.2.1"' +stdout '"v0.2.2"' +stdout '"Version": "v0.2.2"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/tags/v0.2.2"' + +# reuse go list on repo with tags +go clean -modcache +go list -reuse=taglist.json -x -json -m -retracted -versions vcs-test.golang.org/hg/tagtests.hg@latest +! stderr 'hg( .*)* pull' +stdout '"Reuse": true' +stdout '"Versions":' +stdout '"v0.2.1"' +stdout '"v0.2.2"' +stdout '"Version": "v0.2.2"' +stdout '"VCS": "hg"' +stdout '"URL": ".*/hg/tagtests"' +stdout '"Hash": "59356c8cd18c5fe9a598167d98a6843e52d57952"' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' +stdout '"Ref": "refs/tags/v0.2.2"' + +# reuse with stale list +go clean -modcache +cp taglist.json taglistbad.json +replace 'Dp7yRKDu' 'ZZZ' taglistbad.json +go list -reuse=taglistbad.json -x -json -m -retracted -versions vcs-test.golang.org/hg/tagtests.hg@latest +stderr 'hg( .*)* pull' +! stdout '"Reuse": true' +stdout '"TagSum": "t1:Dp7yRKDuE8WjG0429PN9hYWjqhy2te7P9Oki/sMEOGo="' diff --git a/src/cmd/go/testdata/vcstest/hg/prefixtagtests.txt b/src/cmd/go/testdata/vcstest/hg/prefixtagtests.txt new file mode 100644 index 00000000000..6c89c857f49 --- /dev/null +++ b/src/cmd/go/testdata/vcstest/hg/prefixtagtests.txt @@ -0,0 +1,53 @@ +handle git + +env GIT_AUTHOR_NAME='Jay Conrod' +env GIT_AUTHOR_EMAIL='jayconrod@google.com' +env GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME +env GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL + +at 2019-05-09T18:35:00-04:00 + +git init + +git add sub +git commit -m 'create module sub' +git branch -m master + +echo 'v0.1.0' +cp stdout status +git add status +git commit -a -m 'v0.1.0' +git tag 'v0.1.0' + +echo 'sub/v0.0.9' +cp stdout status +git commit -a -m 'sub/v0.0.9' +git tag 'sub/v0.0.9' + +echo 'sub/v0.0.10' +cp stdout status +git commit -a -m 'sub/v0.0.10' +git tag 'sub/v0.0.10' + +echo 'v0.2.0' +cp stdout status +git commit -a -m 'v0.2.0' +git tag 'v0.2.0' + +echo 'after last tag' +cp stdout status +git commit -a -m 'after last tag' + +git show-ref --tags --heads +cmp stdout .git-refs + +-- .git-refs -- +c3ee5d0dfbb9bf3c4d8bb2bce24cd8d14d2d4238 refs/heads/master +2b7c4692e12c109263cab51b416fcc835ddd7eae refs/tags/sub/v0.0.10 +883885166298d79a0561d571a3044ec5db2e7c28 refs/tags/sub/v0.0.9 +db89fc573cfb939faf0aa0660671eb4cf8b8b673 refs/tags/v0.1.0 +1abe41965749e50828dd41de8d12c6ebc8e4e131 refs/tags/v0.2.0 +-- sub/go.mod -- +module vcs-test.golang.org/git/prefixtagtests.git/sub +-- sub/sub.go -- +package sub diff --git a/src/cmd/go/testdata/vcstest/hg/tagtests.txt b/src/cmd/go/testdata/vcstest/hg/tagtests.txt new file mode 100644 index 00000000000..92e79cda877 --- /dev/null +++ b/src/cmd/go/testdata/vcstest/hg/tagtests.txt @@ -0,0 +1,44 @@ +handle git + +env GIT_AUTHOR_NAME='Jay Conrod' +env GIT_AUTHOR_EMAIL='jayconrod@google.com' +env GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME +env GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL + +at 2019-05-09T18:56:25-04:00 + +git init + +git add go.mod tagtests.go +git commit -m 'create module tagtests' +git branch -m master +git branch b + +git add v0.2.1 +git commit -m 'v0.2.1' +git tag 'v0.2.1' + +git checkout b +git add 'v0.2.2' +git commit -m 'v0.2.2' +git tag 'v0.2.2' + +git checkout master +git merge b -m 'merge' + +git show-ref --tags --heads +cmp stdout .git-refs + +-- .git-refs -- +59356c8cd18c5fe9a598167d98a6843e52d57952 refs/heads/b +c7818c24fa2f3f714c67d0a6d3e411c85a518d1f refs/heads/master +101c49f5af1b2466332158058cf5f03c8cca6429 refs/tags/v0.2.1 +59356c8cd18c5fe9a598167d98a6843e52d57952 refs/tags/v0.2.2 +-- go.mod -- +module vcs-test.golang.org/git/tagtests.git +-- tagtests.go -- +package tagtests +-- v0.2.1 -- +v0.2.1 +-- v0.2.2 -- +v0.2.2