]> Cypherpunks repositories - gostls13.git/commit
cmd/go: fix vcsFromDir returning bad root on Windows
authorDmitri Shuralyov <shurcooL@gmail.com>
Thu, 31 Mar 2016 09:01:48 +0000 (02:01 -0700)
committerAlex Brainman <alex.brainman@gmail.com>
Tue, 12 Apr 2016 06:25:45 +0000 (06:25 +0000)
commitb6cd6d7d3211bd9030dec4115b6202d93fe570a3
tree74a98c9f8210103241f501b9a0a225336ca20597
parent07669d2737aa51107a4e54b61d6704f6ad8035b5
cmd/go: fix vcsFromDir returning bad root on Windows

Apply golang/tools@5804fef4c0556d3e5e7d2440740a3d7aced7d58b.

In the context of cmd/go build tool, import path is a '/'-separated path.
This can be inferred from `go help importpath` and `go help packages`.
vcsFromDir documentation says on return, root is the import path
corresponding to the root of the repository. On Windows and other
OSes where os.PathSeparator is not '/', that wasn't true since root
would contain characters other than '/', and therefore it wasn't a
valid import path corresponding to the root of the repository.
Fix that by using filepath.ToSlash.

Add test coverage for vcsFromDir, it was previously not tested.
It's taken from golang.org/x/tools/go/vcs tests, and modified to
improve style.

Additionally, remove an unneccessary statement from the documentation
"(thus root is a prefix of importPath)". There is no variable
importPath that is being referred to (it's possible p.ImportPath
was being referred to). Without it, the description of root value
matches the documentation of repoRoot.root struct field:

// root is the import path corresponding to the root of the
// repository
root string

Rename and change signature of vcsForDir(p *Package) to
vcsFromDir(dir, srcRoot string). This is more in sync with the x/tools
version. It's also simpler, since vcsFromDir only needs those two
values from Package, and nothing more. Change "for" to "from" in name
because it's more consistent and clear.

Update usage of vcsFromDir to match the new signature, and respect
that returned root is a '/'-separated path rather than a os.PathSeparator
separated path.

Fixes #15040.
Updates #7723.
Helps #11490.

Change-Id: Idf51b9239f57248739daaa200aa1c6e633cb5f7f
Reviewed-on: https://go-review.googlesource.com/21345
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/go/get.go
src/cmd/go/vcs.go
src/cmd/go/vcs_test.go