aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2019-05-13 15:11:31 -0400
committerJay Conrod <jayconrod@google.com>2019-05-30 21:42:16 +0000
commita53b46557267492c8f5e6e285c8d4c415183cacf (patch)
treeae519b39ead8d77ee4401ff4b83d15a0a81bced4 /src
parent545cd82734258af78c53eaa58be0edfaedf9ca73 (diff)
downloadgo-a53b46557267492c8f5e6e285c8d4c415183cacf.tar.xz
cmd/go: clarify documentation for 'go get -u'
Also: add a comment in internal/get.newUpgrader as a follow-up to CL 177677. Updates #26902 Change-Id: Ibce2807ecb44fa21697ca04a51c44ddca0f661d8 Reviewed-on: https://go-review.googlesource.com/c/go/+/176902 Reviewed-by: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/go/alldocs.go9
-rw-r--r--src/cmd/go/internal/modget/get.go12
2 files changed, 15 insertions, 6 deletions
diff --git a/src/cmd/go/alldocs.go b/src/cmd/go/alldocs.go
index a78766e228..2df97a429c 100644
--- a/src/cmd/go/alldocs.go
+++ b/src/cmd/go/alldocs.go
@@ -603,9 +603,12 @@
// The -t flag instructs get to consider modules needed to build tests of
// packages specified on the command line.
//
-// The -u flag instructs get to update dependencies to use newer minor or
-// patch releases when available. Continuing the previous example,
-// 'go get -u A' will use the latest A with B v1.3.1 (not B v1.2.3).
+// The -u flag instructs get to update modules providing dependencies
+// of packages named on the command line to use newer minor or patch
+// releases when available. Continuing the previous example, 'go get -u A'
+// will use the latest A with B v1.3.1 (not B v1.2.3). If B requires module C,
+// but C does not provide any packages needed to build packages in A
+// (not including tests), then C will not be updated.
//
// The -u=patch flag (not -u patch) also instructs get to update dependencies,
// but changes the default to select patch releases.
diff --git a/src/cmd/go/internal/modget/get.go b/src/cmd/go/internal/modget/get.go
index 0babfba390..e2c4c105dd 100644
--- a/src/cmd/go/internal/modget/get.go
+++ b/src/cmd/go/internal/modget/get.go
@@ -77,9 +77,12 @@ those requirements by taking the maximum requested version.)
The -t flag instructs get to consider modules needed to build tests of
packages specified on the command line.
-The -u flag instructs get to update dependencies to use newer minor or
-patch releases when available. Continuing the previous example,
-'go get -u A' will use the latest A with B v1.3.1 (not B v1.2.3).
+The -u flag instructs get to update modules providing dependencies
+of packages named on the command line to use newer minor or patch
+releases when available. Continuing the previous example, 'go get -u A'
+will use the latest A with B v1.3.1 (not B v1.2.3). If B requires module C,
+but C does not provide any packages needed to build packages in A
+(not including tests), then C will not be updated.
The -u=patch flag (not -u patch) also instructs get to update dependencies,
but changes the default to select patch releases.
@@ -757,6 +760,9 @@ func newUpgrader(cmdline map[string]*query, pkgs map[string]bool) *upgrader {
work = work[1:]
m := modload.PackageModule(pkg)
u.upgrade[m.Path] = true
+
+ // testImports is empty unless test imports were actually loaded,
+ // i.e., -t was set or "all" was one of the arguments.
imports, testImports := modload.PackageImports(pkg)
for _, imp := range imports {
add(imp)