cmd/go: support git.apache.org Git repos This change fixes resolution of secure (https) repo URL for git.apache.org Git repositories. E.g. the correct repo URL for git.apache.org/thrift.git/lib/go/thrift is https://git.apache.org/thrift.git, not https://git.apache.org/thrift Fixes #10797 Change-Id: I67d5312ad8620eb780e42c2e002c8f286f60645a Reviewed-on: https://go-review.googlesource.com/10092 Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/src/cmd/go/vcs.go b/src/cmd/go/vcs.go index 64cbf45..8871f77 100644 --- a/src/cmd/go/vcs.go +++ b/src/cmd/go/vcs.go
@@ -882,6 +882,14 @@ check: noVCSSuffix, }, + // Git at Apache + { + prefix: "git.apache.org", + re: `^(?P<root>git.apache.org/[a-z0-9_.\-]+\.git)(/[A-Za-z0-9_.\-]+)*$`, + vcs: "git", + repo: "https://{root}", + }, + // General syntax for any server. { re: `^(?P<root>(?P<repo>([a-z0-9.\-]+\.)+[a-z0-9.\-]+(:[0-9]+)?/[A-Za-z0-9_.\-/]*?)\.(?P<vcs>bzr|git|hg|svn))(/[A-Za-z0-9_.\-]+)*$`,
diff --git a/src/cmd/go/vcs_test.go b/src/cmd/go/vcs_test.go index 44f7ea8..f5d5e4f 100644 --- a/src/cmd/go/vcs_test.go +++ b/src/cmd/go/vcs_test.go
@@ -96,6 +96,30 @@ "hub.jazz.net/git/USER/pkgname", nil, }, + // Spaces are not valid in package name + { + "git.apache.org/package name/path/to/lib", + nil, + }, + // Should have ".git" suffix + { + "git.apache.org/package-name/path/to/lib", + nil, + }, + { + "git.apache.org/package-name.git", + &repoRoot{ + vcs: vcsGit, + repo: "https://git.apache.org/package-name.git", + }, + }, + { + "git.apache.org/package-name_2.x.git/path/to/lib", + &repoRoot{ + vcs: vcsGit, + repo: "https://git.apache.org/package-name_2.x.git", + }, + }, } for _, test := range tests {