Cargo将下载的包装箱的源代码存储在$HOME/.cargo/registry/src(或相应的$CARGO_HOME目录)中.我得到我使用的每个唯一的注册表将创建一个单独的目录,可能是为了防止冲突.
我不明白的是为什么同一个存储库会创建多个目录:
$ ls -ld ~/.cargo/registry/src/github.com-*
drwxr-xr-x 473 shep staff 16082 Dec 27 2015 ~/.cargo/registry/src/github.com-0a35038f75765ae4
drwxr-xr-x 1187 shep staff 40358 Feb 8 19:10 ~/.cargo/registry/src/github.com-1ecc6299db9ec823
drwxr-xr-x 380 shep staff 12920 Sep 11 12:16 ~/.cargo/registry/src/github.com-88ac128001ac3a9a
Run Code Online (Sandbox Code Playgroud)
据推测,附加到末尾的哈希在此中扮演了一些角色.是什么导致Cargo创建这些目录之一?它是否会回到之前的目录并继续使用它?
哈希基于两个字段:源类型(中央存储库,git引用,本地路径等)和源的URL.
Cargo过去常常委托rust-url实现Hashfor Url,随着时间的推移而变化.为了解决问题1710,货物的实施最后在拉动请求2737中被改变; Cargo现在散列URL字符串而不是对象,以便生成更稳定的散列,而不依赖于rust-url的行为.Url
此外,Cargo使用现已弃用SipHasher的哈希函数.因为它已被弃用,所以Cargo可能在将来改为另一个哈希函数(或者SipHasher可能会转移到箱子而Cargo会使用它,谁知道).
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |