diff --git a/src/cmd/goinstall/download.go b/src/cmd/goinstall/download.go index ccce680ce8e..8e6cb4b3738 100644 --- a/src/cmd/goinstall/download.go +++ b/src/cmd/goinstall/download.go @@ -236,9 +236,13 @@ func (r *googleRepo) Repo(client *http.Client) (url, root string, vcs *vcs, err } // Scrape result for vcs details. - m := googleRepoRe.FindSubmatch(b) - if len(m) == 2 { - if v := vcsMap[string(m[1])]; v != nil { + if m := googleRepoRe.FindSubmatch(b); len(m) == 2 { + s := string(m[1]) + if v := vcsMap[s]; v != nil { + if s == "svn" { + // Subversion still uses the old-style URL. + r.url = fmt.Sprintf("http://%s.googlecode.com/svn", p[0]) + } r.vcs = v return r.url, r.root, r.vcs, nil } diff --git a/src/cmd/goinstall/download_test.go b/src/cmd/goinstall/download_test.go index a4455a2ca56..4104f71dd29 100644 --- a/src/cmd/goinstall/download_test.go +++ b/src/cmd/goinstall/download_test.go @@ -31,7 +31,7 @@ var FindPublicRepoTests = []struct { "code.google.com/p/repo/path/foo", "svn", "code.google.com/p/repo", - "https://code.google.com/p/repo", + "https://repo.googlecode.com/svn", &testTransport{ "https://code.google.com/p/repo/source/checkout", `svn checkout https://...`,