Commit 1080cece authored by Russ Cox's avatar Russ Cox

cmd/go: read URL not Repository Root from svn info

This makes custom import path checks work even when the
custom import metadata directs checking out a subtree
of the subversion repository.

(Git and Mercurial allow no such thing, so they are unaffected.)

Fixes #20731.

Change-Id: I635f3a2037d69a87c6dac7b08b0a0d8266abd250
Reviewed-on: https://go-review.googlesource.com/46417
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent ac7f7eca
...@@ -302,15 +302,20 @@ func svnRemoteRepo(vcsSvn *vcsCmd, rootDir string) (remoteRepo string, err error ...@@ -302,15 +302,20 @@ func svnRemoteRepo(vcsSvn *vcsCmd, rootDir string) (remoteRepo string, err error
out := string(outb) out := string(outb)
// Expect: // Expect:
//
// ... // ...
// Repository Root: <URL> // URL: <URL>
// ... // ...
//
i := strings.Index(out, "\nRepository Root: ") // Note that we're not using the Repository Root line,
// because svn allows checking out subtrees.
// The URL will be the URL of the subtree (what we used with 'svn co')
// while the Repository Root may be a much higher parent.
i := strings.Index(out, "\nURL: ")
if i < 0 { if i < 0 {
return "", fmt.Errorf("unable to parse output of svn info") return "", fmt.Errorf("unable to parse output of svn info")
} }
out = out[i+len("\nRepository Root: "):] out = out[i+len("\nURL: "):]
i = strings.Index(out, "\n") i = strings.Index(out, "\n")
if i < 0 { if i < 0 {
return "", fmt.Errorf("unable to parse output of svn info") return "", fmt.Errorf("unable to parse output of svn info")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment