Crates.io 索引快照分支移动

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

为了最小化 Cargo 需要下载的历史记录,crates.io 索引的 Git 历史记录会不时地压缩成一个提交。当索引被压缩时,我们会保存快照以保留 crate 发布的历史记录。

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

以下是这可能会如何影响你

如果你使用 Cargo

你不应该看到此更改带来的任何影响。Cargo 不使用快照分支,并且 Cargo 会定期处理索引压缩。如果你确实看到任何问题,那都是错误,请在 Cargo 仓库上报告它们

如果你使用快照分支

在一周后的 2022-02-21,我们将从 crates.io-index 仓库中删除所有快照分支。所有快照分支,无论是历史的还是未来的,都将改存放在 rust-lang/crates.io-index-archive 仓库中。请在那之前更新任何引用快照分支的脚本或工具。

未来

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