mirror of
https://github.com/golang/go
synced 2024-11-26 18:26:48 -07:00
cmd/go: fix go get -u handling of changing dependencies
Fixes #9224. Change-Id: Ie0f4f14407099e4fa7ebe361a95b6492012928a2 Reviewed-on: https://go-review.googlesource.com/12192 Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
8df0bcc1fb
commit
af96030150
@ -277,9 +277,9 @@ func download(arg string, parent *Package, stk *importStack, getTestDeps bool) {
|
||||
}
|
||||
|
||||
// Process dependencies, now that we know what they are.
|
||||
for _, dep := range p.deps {
|
||||
for _, path := range p.Imports {
|
||||
// Don't get test dependencies recursively.
|
||||
download(dep.ImportPath, p, stk, false)
|
||||
download(path, p, stk, false)
|
||||
}
|
||||
if getTestDeps {
|
||||
// Process test dependencies when -t is specified.
|
||||
|
@ -2128,3 +2128,32 @@ func TestGoTestImportErrorStack(t *testing.T) {
|
||||
t.Fatal("did not give full import stack:\n\n%s", tg.stderr.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestGoGetUpdate(t *testing.T) {
|
||||
// golang.org/issue/9224.
|
||||
// The recursive updating was trying to walk to
|
||||
// former dependencies, not current ones.
|
||||
testenv.MustHaveExternalNetwork(t)
|
||||
|
||||
tg := testgo(t)
|
||||
defer tg.cleanup()
|
||||
tg.makeTempdir()
|
||||
tg.setenv("GOPATH", tg.path("."))
|
||||
|
||||
rewind := func() {
|
||||
tg.run("get", "github.com/rsc/go-get-issue-9224-cmd")
|
||||
cmd := exec.Command("git", "reset", "--hard", "HEAD~")
|
||||
cmd.Dir = tg.path("src/github.com/rsc/go-get-issue-9224-lib")
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
t.Fatalf("git: %v\n%s", err, out)
|
||||
}
|
||||
}
|
||||
|
||||
rewind()
|
||||
tg.run("get", "-u", "github.com/rsc/go-get-issue-9224-cmd")
|
||||
|
||||
// Again with -d -u.
|
||||
rewind()
|
||||
tg.run("get", "-d", "-u", "github.com/rsc/go-get-issue-9224-cmd")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user