mirror of
https://github.com/golang/go
synced 2024-11-23 20:00:04 -07:00
go get: Support for IBM DevOps Services (hub.jazz.net) git repos
LGTM=adg R=golang-codereviews, adg, minux CC=golang-codereviews https://golang.org/cl/106740044
This commit is contained in:
parent
a44cf8d18e
commit
fd7b82b4e4
@ -681,6 +681,11 @@ A few common code hosting sites have special syntax:
|
||||
import "launchpad.net/~user/project/branch"
|
||||
import "launchpad.net/~user/project/branch/sub/directory"
|
||||
|
||||
IBM DevOps Services (Git)
|
||||
|
||||
import "hub.jazz.net/git/user/project"
|
||||
import "hub.jazz.net/git/user/project/sub/directory"
|
||||
|
||||
For code hosted on other servers, import paths may either be qualified
|
||||
with the version control type, or the go tool can dynamically fetch
|
||||
the import path over https/http and discover where the code resides
|
||||
|
@ -154,6 +154,11 @@ A few common code hosting sites have special syntax:
|
||||
import "launchpad.net/~user/project/branch"
|
||||
import "launchpad.net/~user/project/branch/sub/directory"
|
||||
|
||||
IBM DevOps Services (Git)
|
||||
|
||||
import "hub.jazz.net/git/user/project"
|
||||
import "hub.jazz.net/git/user/project/sub/directory"
|
||||
|
||||
For code hosted on other servers, import paths may either be qualified
|
||||
with the version control type, or the go tool can dynamically fetch
|
||||
the import path over https/http and discover where the code resides
|
||||
|
@ -613,6 +613,15 @@ var vcsPaths = []*vcsPath{
|
||||
check: launchpadVCS,
|
||||
},
|
||||
|
||||
// IBM DevOps Services (JazzHub)
|
||||
{
|
||||
prefix: "hub.jazz.net/git",
|
||||
re: `^(?P<root>hub.jazz.net/git/[a-z0-9]+/[A-Za-z0-9_.\-]+)(/[A-Za-z0-9_.\-]+)*$`,
|
||||
vcs: "git",
|
||||
repo: "https://{root}",
|
||||
check: noVCSSuffix,
|
||||
},
|
||||
|
||||
// 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_.\-]+)*$`,
|
||||
|
116
src/cmd/go/vcs_test.go
Normal file
116
src/cmd/go/vcs_test.go
Normal file
@ -0,0 +1,116 @@
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Test that RepoRootForImportPath creates the correct RepoRoot for a given importPath.
|
||||
// TODO(cmang): Add tests for SVN and BZR.
|
||||
func TestRepoRootForImportPath(t *testing.T) {
|
||||
tests := []struct {
|
||||
path string
|
||||
want *repoRoot
|
||||
}{
|
||||
{
|
||||
"code.google.com/p/go",
|
||||
&repoRoot{
|
||||
vcs: vcsHg,
|
||||
repo: "https://code.google.com/p/go",
|
||||
},
|
||||
},
|
||||
/*{
|
||||
"code.google.com/r/go",
|
||||
&repoRoot{
|
||||
vcs: vcsHg,
|
||||
repo: "https://code.google.com/r/go",
|
||||
},
|
||||
},*/
|
||||
{
|
||||
"github.com/golang/groupcache",
|
||||
&repoRoot{
|
||||
vcs: vcsGit,
|
||||
repo: "https://github.com/golang/groupcache",
|
||||
},
|
||||
},
|
||||
// IBM DevOps Services tests
|
||||
{
|
||||
"hub.jazz.net/git/user1/pkgname",
|
||||
&repoRoot{
|
||||
vcs: vcsGit,
|
||||
repo: "https://hub.jazz.net/git/user1/pkgname",
|
||||
},
|
||||
},
|
||||
{
|
||||
"hub.jazz.net/git/user1/pkgname/submodule/submodule/submodule",
|
||||
&repoRoot{
|
||||
vcs: vcsGit,
|
||||
repo: "https://hub.jazz.net/git/user1/pkgname",
|
||||
},
|
||||
},
|
||||
{
|
||||
"hub.jazz.net",
|
||||
nil,
|
||||
},
|
||||
{
|
||||
"hub2.jazz.net",
|
||||
nil,
|
||||
},
|
||||
{
|
||||
"hub.jazz.net/someotherprefix",
|
||||
nil,
|
||||
},
|
||||
{
|
||||
"hub.jazz.net/someotherprefix/user1/pkgname",
|
||||
nil,
|
||||
},
|
||||
// Spaces are not valid in user names or package names
|
||||
{
|
||||
"hub.jazz.net/git/User 1/pkgname",
|
||||
nil,
|
||||
},
|
||||
{
|
||||
"hub.jazz.net/git/user1/pkg name",
|
||||
nil,
|
||||
},
|
||||
// Dots are not valid in user names
|
||||
{
|
||||
"hub.jazz.net/git/user.1/pkgname",
|
||||
nil,
|
||||
},
|
||||
{
|
||||
"hub.jazz.net/git/user/pkg.name",
|
||||
&repoRoot{
|
||||
vcs: vcsGit,
|
||||
repo: "https://hub.jazz.net/git/user/pkg.name",
|
||||
},
|
||||
},
|
||||
// User names cannot have uppercase letters
|
||||
{
|
||||
"hub.jazz.net/git/USER/pkgname",
|
||||
nil,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
got, err := repoRootForImportPath(test.path)
|
||||
want := test.want
|
||||
|
||||
if want == nil {
|
||||
if err == nil {
|
||||
t.Errorf("RepoRootForImport(%q): Error expected but not received")
|
||||
}
|
||||
continue
|
||||
}
|
||||
if err != nil {
|
||||
t.Errorf("RepoRootForImport(%q): %v", test.path, err)
|
||||
continue
|
||||
}
|
||||
if got.vcs.name != want.vcs.name || got.repo != want.repo {
|
||||
t.Errorf("RepoRootForImport(%q) = VCS(%s) Repo(%s), want VCS(%s) Repo(%s)", test.path, got.vcs, got.repo, want.vcs, want.repo)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user