Go:如何从 sumsdb 中删除模块
Go: how to remove a module from sumsdb
我描述的有误here。不幸的是,该问题被错误地关闭为“重复”,并且提出的问题实际上 not 与 mime 相同。
让我用另一种方式重新表述我的问题:作为模块作者,我如何从 Go 的“sumsdb”中删除模块,以便可以修复所描述的错误。
下面粘贴了原始问题以供参考。
编辑:此问题已被版主关闭,但给定的 uri 未回答,这给出了不同的错误消息:
Why does go get fail with "invalid version: unknown revision"?
我将重新表述我的问题:
我从提交中删除了标记 v1.0.0
,并标记了 另一个 提交。现在我发现存储库不再可用了。要验证:您可以执行以下操作:
- 克隆https://github.com/xrfang/hap
- cd进入
example
目录,然后运行go build .
这个问题不仅发生在我的 PC 上,也发生在任何试图使用上述 repo 的人身上。
我想知道这个问题是否会随着时间的推移而消失(因为缓存过期?)或者我必须做些什么?如果它会自愈,我想知道缓存有效时间是多长时间?如果没有,我想知道如何解决这个问题。我希望不要使用像 GOPRIVATE 这样的东西,因为这个 repo 将是 public(开源)。
原post:
我写了一个http参数解析工具,放在了github.com/xrfang/hap
。 git 日志是:
* d8cee08 2022-02-14 | implemented http.Handler interface (HEAD -> master, tag: v1.0.0, origin/master, origin/HEAD) [xrfang]
* 171dc29 2022-02-10 | updated go.mod for example [xrfang]
* d2cea3c 2022-02-09 | added example [xrfang]
* 202d959 2022-02-09 | bug fix in error handling [xrfang]
* ... ...
问题是,我之前将提交 d2cea3c
标记为 v1.0.0。后来我发现它不是最优的,并添加了一些新代码。新代码不 与 v1.0.0 兼容,因此我应该 将其设为 v2.0.0。但是,由于这个工具是新编写的,而且我是唯一的用户。我认为使它成为 v2.0.0 是愚蠢的。所以我刚刚删除了 v1.0.0 并将其重新标记为最新提交 d8cee08
.
问题是,去投诉版本不“正版”。然后我删除了 go.sum,并做了 go clean -modcache
、go get -u
、go mod tidy
,但无济于事。最后一次尝试是:
$ go get -u
# example
./main.go:30:11: at.Init undefined (type apiTest has no field or method Init)
./main.go:39:2: undefined: hap.Register
我的问题是:
Go 如何管理其存储库?我之前发现,在我更新我的模块并将其推送到 github 之后,该示例经常无法编译,除非我在 go.mod 中使用 replace
,或者只是等待一段时间(例如30 分钟)。似乎有一个中央“查找 table”,它会定期更新,因此在模块更新时经常滞后?
如何解决我当前版本重新标记的问题?
您的理解是正确的,正如您链接的问题中所述。
或者
- 发布 v2.0.0
- 与 GOPRIVATE 一起生活
- 发布 v1.1.0
我描述的有误here。不幸的是,该问题被错误地关闭为“重复”,并且提出的问题实际上 not 与 mime 相同。
让我用另一种方式重新表述我的问题:作为模块作者,我如何从 Go 的“sumsdb”中删除模块,以便可以修复所描述的错误。
下面粘贴了原始问题以供参考。
编辑:此问题已被版主关闭,但给定的 uri 未回答,这给出了不同的错误消息:
Why does go get fail with "invalid version: unknown revision"?
我将重新表述我的问题:
我从提交中删除了标记 v1.0.0
,并标记了 另一个 提交。现在我发现存储库不再可用了。要验证:您可以执行以下操作:
- 克隆https://github.com/xrfang/hap
- cd进入
example
目录,然后运行go build .
这个问题不仅发生在我的 PC 上,也发生在任何试图使用上述 repo 的人身上。
我想知道这个问题是否会随着时间的推移而消失(因为缓存过期?)或者我必须做些什么?如果它会自愈,我想知道缓存有效时间是多长时间?如果没有,我想知道如何解决这个问题。我希望不要使用像 GOPRIVATE 这样的东西,因为这个 repo 将是 public(开源)。
原post:
我写了一个http参数解析工具,放在了github.com/xrfang/hap
。 git 日志是:
* d8cee08 2022-02-14 | implemented http.Handler interface (HEAD -> master, tag: v1.0.0, origin/master, origin/HEAD) [xrfang]
* 171dc29 2022-02-10 | updated go.mod for example [xrfang]
* d2cea3c 2022-02-09 | added example [xrfang]
* 202d959 2022-02-09 | bug fix in error handling [xrfang]
* ... ...
问题是,我之前将提交 d2cea3c
标记为 v1.0.0。后来我发现它不是最优的,并添加了一些新代码。新代码不 与 v1.0.0 兼容,因此我应该 将其设为 v2.0.0。但是,由于这个工具是新编写的,而且我是唯一的用户。我认为使它成为 v2.0.0 是愚蠢的。所以我刚刚删除了 v1.0.0 并将其重新标记为最新提交 d8cee08
.
问题是,去投诉版本不“正版”。然后我删除了 go.sum,并做了 go clean -modcache
、go get -u
、go mod tidy
,但无济于事。最后一次尝试是:
$ go get -u
# example
./main.go:30:11: at.Init undefined (type apiTest has no field or method Init)
./main.go:39:2: undefined: hap.Register
我的问题是:
Go 如何管理其存储库?我之前发现,在我更新我的模块并将其推送到 github 之后,该示例经常无法编译,除非我在 go.mod 中使用
replace
,或者只是等待一段时间(例如30 分钟)。似乎有一个中央“查找 table”,它会定期更新,因此在模块更新时经常滞后?如何解决我当前版本重新标记的问题?
您的理解是正确的,正如您链接的问题中所述。
或者
- 发布 v2.0.0
- 与 GOPRIVATE 一起生活
- 发布 v1.1.0