Crates.io 索引快照分支迁移

2022 年 2 月 14 日 · Crates.io 团队

每隔一段时间,crates.io 索引 的 Git 历史记录会被压缩成一个提交,以最大程度地减少 Cargo 需要下载的历史记录。当索引被压缩时,我们会保存快照以保留 crate 发布的历史记录。

目前,这些快照存储在主索引 Git 存储库中的分支中。但是,这些分支正在使用服务器资源,因为服务器在 Cargo 请求主分支时仍然需要考虑它们的内容。我们将从该存储库中删除快照分支,以确保主分支中引用的所有对象都只会被压缩到主分支中的其他对象,从而确保当前克隆行为在服务器端将更加高效。

这可能会对您造成的影响

如果您使用 Cargo

您不应该看到此更改带来的任何影响。Cargo 不使用快照分支,并且 Cargo 定期处理索引压缩。如果您确实遇到任何问题,它们是 bug,请在 Cargo 存储库中报告它们

如果您使用快照分支

在一周后,即 2022 年 2 月 21 日,我们将从 crates.io-index 存储库中删除所有快照分支。所有快照分支,无论是历史的还是未来的,都将并且将继续存在于rust-lang/crates.io-index-archive 存储库 中。请在截止日期之前更新任何引用快照分支的脚本或工具。

未来

从中期来看,我们正在努力优先完成正在进行的工作,以添加一种方法,通过 HTTP 以静态文件形式提供索引,这将进一步减轻服务器负载。索引存储库不会消失,以便旧版本的 Cargo 能够继续工作。有关更多详细信息,请参阅RFC 2789