diff options
| author | Michael Matloob <matloob@golang.org> | 2020-12-01 21:45:49 -0500 |
|---|---|---|
| committer | Michael Matloob <matloob@golang.org> | 2020-12-11 17:26:14 +0000 |
| commit | 1341a3decd00d1106efaa73c5ff4ffcabc4e6afd (patch) | |
| tree | b465c31b6a2c692490c92caf5f6ad1d0b9feb27f | |
| parent | e508c1c67b02dceea146ce3472c0f8ce9e60632c (diff) | |
| download | go-1341a3decd00d1106efaa73c5ff4ffcabc4e6afd.tar.xz | |
cmd/go: add documentation for the -overlay flag
Also add -overlay to the Go 1.16 release notes.
For #40700
Fixes #39958
Fixes #42893
Change-Id: Ifd397549e368b255e7b8800986cfa0563a942af5
Reviewed-on: https://go-review.googlesource.com/c/go/+/274714
Trust: Michael Matloob <matloob@golang.org>
Run-TryBot: Michael Matloob <matloob@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jay Conrod <jayconrod@google.com>
| -rw-r--r-- | doc/go1.16.html | 14 | ||||
| -rw-r--r-- | src/cmd/go/alldocs.go | 11 | ||||
| -rw-r--r-- | src/cmd/go/internal/work/build.go | 11 |
3 files changed, 36 insertions, 0 deletions
diff --git a/doc/go1.16.html b/doc/go1.16.html index e0187effd7..2ff763f9b6 100644 --- a/doc/go1.16.html +++ b/doc/go1.16.html @@ -271,6 +271,20 @@ Do not send CLs removing the interior tags from such phrases. but without the extra step. </p> +<h4 id="overlay-flag">The <code>-overlay</code> flag</h4> + +<p><!-- golang.org/issue/39958 --> + The <code>-overlay</code> flag specifies a JSON configuration file containing + a set of file path replacements. The <code>-overlay</code> flag may be used + with all build commands and <code>go</code> <code>mod</code> subcommands. + It is primarily intended to be used by editor tooling such as gopls to + understand the effects of unsaved changes to source files. The config file + maps actual file paths to replacement file paths and the <code>go</code> + command and its builds will run as if the actual file paths exist with the + contents given by the replacement file paths, or don't exist if the replacement + file paths are empty. +</p> + <h3 id="cgo">Cgo</h3> <p><!-- CL 252378 --> diff --git a/src/cmd/go/alldocs.go b/src/cmd/go/alldocs.go index daa407197c..c4913ce695 100644 --- a/src/cmd/go/alldocs.go +++ b/src/cmd/go/alldocs.go @@ -164,6 +164,17 @@ // directory, but it is not accessed. When -modfile is specified, an // alternate go.sum file is also used: its path is derived from the // -modfile flag by trimming the ".mod" extension and appending ".sum". +// -overlay file +// read a JSON config file that provides an overlay for build operations. +// The file is a JSON struct with a single field, named 'Replace', that +// maps each disk file path (a string) to its backing file path, so that +// a build will run as if the disk file path exists with the contents +// given by the backing file paths, or as if the disk file path does not +// exist if its backing file path is empty. Support for the -overlay flag +// has some limitations:importantly, cgo files included from outside the +// include path must be in the same directory as the Go package they are +// included from, and overlays will not appear when binaries and tests are +// run through go run and go test respectively. // -pkgdir dir // install and load all packages from dir instead of the usual locations. // For example, when building with a non-standard configuration, diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go index 21b2289dff..be5532d7aa 100644 --- a/src/cmd/go/internal/work/build.go +++ b/src/cmd/go/internal/work/build.go @@ -124,6 +124,17 @@ and test commands: directory, but it is not accessed. When -modfile is specified, an alternate go.sum file is also used: its path is derived from the -modfile flag by trimming the ".mod" extension and appending ".sum". + -overlay file + read a JSON config file that provides an overlay for build operations. + The file is a JSON struct with a single field, named 'Replace', that + maps each disk file path (a string) to its backing file path, so that + a build will run as if the disk file path exists with the contents + given by the backing file paths, or as if the disk file path does not + exist if its backing file path is empty. Support for the -overlay flag + has some limitations:importantly, cgo files included from outside the + include path must be in the same directory as the Go package they are + included from, and overlays will not appear when binaries and tests are + run through go run and go test respectively. -pkgdir dir install and load all packages from dir instead of the usual locations. For example, when building with a non-standard configuration, |
