• Dmitri Shuralyov's avatar
    cmd/go: fix vcsFromDir returning bad root on Windows · b6cd6d7d
    Dmitri Shuralyov authored
    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/21345Reviewed-by: 's avatarAlex Brainman <alex.brainman@gmail.com>
    Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    b6cd6d7d
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang.org/x/net/http2/hpack Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...