我正在尝试使用当前代码库mgo.v2的本地副本。 https://gopkg.in/mgo.v2 表示要使用go get gopkg.in/mgo.v2
进行安装。我从https://github.com/go-mgo/mgo/tree/v2分叉并尝试从go获取分叉repo从git 安装它,但它改变了包结构(从/src/gopkg.in - > / src /更改github.com)它没有说
src/github.com/eateshk/mgo.v2/error.go:4: "ERROR: the correct import path is gopkg.in/mgo.v2 ... " evaluated but not used
我理解错误,但是解决方法是什么?
答案 0 :(得分:1)
这是分叉包裹时的常见问题。 Canonical或“vanity”导入要求代码存在于指定的路径中,否则它们将无法编译。唯一的解决方案是删除存在于某处的// import "gopkg.in/whatever"
注释。
您的方法也存在其他问题。除非您重写它们,否则其存储库中的导入将解析回原始存储库并导致各种混淆。
相反,我建议采用另一种方法。 唯一这个可以存放在磁盘上而不会导致问题的地方是$GOPATH/src/gopkg.in/mgo.v2
。任何其他事情都会导致问题。所以:
go get gopkg.in/mgo.v2
cd $GOPATH/src/gopkg.in/mgo.v2
git remote add mine your_git_fork
现在,您可以从origin
提取上游更改并将更改推送到mine
。这感觉有点奇怪,但它确实是通过重写东西而不会造成大量额外痛苦的唯一方法。