猿问

使用提交哈希时,Go 模块出现“未知修订版”错误

我需要将此提交放入我的 go 项目中。


我尝试过多个版本go.mod:


...


require (

    github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2


    // and...

    github.com/libp2p/go-libp2p-core v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825

)


...

运行时两者都会导致错误$ go build:


$ go build

go: finding github.com/libp2p/go-libp2p-core v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825

go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2

go: github.com/libp2p/go-libp2p-core@v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825: unknown revision v0.0.0-20190626-aca080dccfc2c9933df66baafe6cf9cc4f429825

go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2

go: error loading module requirements

去获取也不起作用:


$ go get github.com/libp2p/go-libp2p-core@aca080dccfc2c9933df66baafe6cf9cc4f429825

go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2                                                                                                    go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2

go: error loading module requirements

正如@JimB 指出的那样,该哈希没有合并,而是重新设置了基础。所以我尝试用新的替换它,但它仍然试图获取旧的?


$ go get github.com/libp2p/go-libp2p-core@v0.2.1-0.20190802003216-436d707f7cd0

go: finding github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2

go: github.com/libp2p/go-libp2p-core@v0.0.7-0.20190626134135-aca080dccfc2: unknown revision aca080dccfc2

go: error loading module requirements


慕后森
浏览 150回答 2
2回答

繁星coding

对于您最近的 hash aca080dccfc2,它是否已合并到 master ,或者该 hash 对应于什么?快速查看,aca080dccfc2似乎没有 on master,但我不确定您对该提交的期望是什么。模块允许的哈希值是有限制的,例如:如果您查看 refs/pulls/nnnnn 或任何 ref ,它会出现在 Git 中,但不会出现在主分支和标签中。最近的更改将搜索范围缩小到主要分支和标签,这更合适。尝试获取该aca080dccfc2哈希对我来说不起作用:$ go get github.com/libp2p/go-libp2p-core@436d707f7cd0go: finding github.com/libp2p/go-libp2p-core 436d707f7cd0go get github.com/libp2p/go-libp2p-core@436d707f7cd0:  github.com/libp2p/go-libp2p-core@436d707f7cd0: invalid version: unknown revision 436d707f7cd0另一方面,最近的提交master确实对我有用:$ go get github.com/libp2p/go-libp2p-core@d204016fc64589d0(旁注:请注意,我只是在 . 之后单独使用提交哈希值@。如果伪版本出现问题,这会很方便)。您提到:它仍在尝试获取旧的吗?我不确定这是否是您的主要问题,但一般来说,如果您不确定版本来自哪里,那么通常是一个好的起点:go mod graph | grep <module-of-interest>或者在你的情况下:go mod graph | grep go-libp2p-core从文档中:“go mod graph”以文本形式打印模块需求图(应用了替换)。输出中的每一行都有两个以空格分隔的字段:一个模块及其要求之一。每个模块都被标识为路径@版本形式的字符串,但主模块除外,它没有@版本后缀。

MYYA

您可以尝试这个小技巧来解决这个问题:github.com/libp2p/go-libp2p-core v0.0.7-0.20190626134135-aca080dccfc2从go.mod和go.sum文件中删除 的条目。然后尝试go get "github.com/libp2p/go-libp2p-core@v0.2.1-0.20190802003216-436d707f7cd0"下载指定版本
随时随地看视频慕课网APP

相关分类

Go
我要回答