commit | 203c16592bd20ec22ed407d445719b90585626b1 | [log] [tgz] |
---|---|---|
author | Russ Cox <rsc@golang.org> | Sun Jul 15 22:56:37 2018 -0400 |
committer | Russ Cox <rsc@golang.org> | Wed Jul 18 02:08:57 2018 +0000 |
tree | 5c42ee154a0f499deef114320904bf6f5d16cd4f | |
parent | ce09ce4ae0116d2056e8864fe2c2fd3abbc5375a [diff] |
cmd/go/internal/module: define fs-safe module path encoding Module paths, like import paths, are case-sensitive, for better or worse. But not all file systems distinguish file paths with different cases. If we are going to use module paths to construct file system paths, we must apply an encoding that distinguishes case without relying upon the file system to do it. This CL defines that encoding, the "safe module path encoding". Module paths today are ASCII-only with limited punctuation, so the safe module path encoding is to convert the whole path to lower case and insert an ! before every formerly upper-case letter: github.com/Sirupsen/logrus is stored as github.com/!sirupsen/logrus. Although this CL defines the encoding, it does not change the rest of the go command to use the encoding. That will be done in follow-up CLs. Change-Id: I06e6188dcfcbbc1d88674f7c95e1cb45cb476238 Reviewed-on: https://go-review.googlesource.com/124378 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.