如何跟踪Go模块中依赖项的来源?

如何跟踪Go模块中依赖项的来源?,go,go-modules,Go,Go Modules,我有一个Go模块,比如说github.com/myorg/mymodule,我想在另一个模块中更新它的版本。但是,如果我尝试去获取-u它,我会得到一个意外的模块路径错误: > go get -u github.com/myorg/mymodule go: sourcegraph.com/sourcegraph/go-diff@v0.5.1: parsing go.mod: unexpected module path "github.com/sourcegraph/go-diff" go

我有一个Go模块,比如说
github.com/myorg/mymodule
,我想在另一个模块中更新它的版本。但是,如果我尝试
去获取-u
它,我会得到一个
意外的模块路径
错误:

> go get -u github.com/myorg/mymodule
go: sourcegraph.com/sourcegraph/go-diff@v0.5.1: parsing go.mod: unexpected module path "github.com/sourcegraph/go-diff"
go get: error loading module requirements
对此的修复已记录在:此模块需要导入为
github.com/sourcegraph/go-diff/diff
,而不是
github.com/sourcegraph/go-diff

问题是,我不知道在哪里应用这个修复程序——也就是说,哪个依赖项以错误的方式导入这个子依赖项

特别是,
go.diff
不会出现在
go.mod
中,它只出现在
go.sum
中(在几个不同的模块中):

我尝试过使用
go mod why
,但这只是报告不需要该模块:

> go mod why sourcegraph.com/sourcegraph/go-diff
# sourcegraph.com/sourcegraph/go-diff
(main module does not need package sourcegraph.com/sourcegraph/go-diff)
更令人费解的是,错误消息提到了
go-diff@v0.5.1
,而
go.sum
包含
go diff v0.5.0


总而言之,我怎样才能追踪到go diff依赖项的“错误导入”发生在哪里,以便更新该模块的版本?

我能够通过运行go get github.com/sourcegraph/go diff并添加此替换指令(cf.)来“修补”这个问题在我试图更新依赖项的模块中:

replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1

之后,
go-get-u github.com/myorg/mymodule
运行时没有出现错误。

运行
go-mod-tidy
删除未使用的依赖项。在那之后它还会显示吗?我已经有一段时间没看到这个了,你在使用go1.13吗?它在
go mod tidy
之后仍然会显示,而我在使用go 1.12。
replace sourcegraph.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1