我对它没有印象,但是我找不到关于此的任何具体文档。 Cargo是否在对待Git上符合semver的标签上使用与对待crates.io上的箱子相同的方式,即cargo update
将箱子更新为最新的不间断版本?
更具体地说,给定以下Cargo.toml代码段,并假定“ crate”的最新版本为1.0.1,并且“ git_crate”存在1.0.1标记,则“ crate”的1.0.1版本为已下载。 cargo install
是否还会为“ git_crate”获取1.0.1标签,还是会使用1.0.0标签?
[dependencies]
crate = "1.0.0"
git_crate = { git = "https://[email protected]/git_crate.git", tag = "1.0.0" }
Git标签是自由格式;例如,完全可以将您的提交标记为foobar
,并且没人会蒙上眼睛。 Semver是人们为其标签使用的常见趋势。但是,那是一个常数吗?某些人使用x.y.z
,其他人使用vx.y.z
。
因此,货物将选择您指定的精确标签。您可以通过使用git daemon
在临时端口(默认为9418)上支持您的存储库,然后添加git repo及其标签来说服自己。当端口启动并且守护程序可用时,您将看到以下内容(但没有有效的git repo):
Caused by:
Unable to update http://localhost:9418/?tag=1.0.0
因此,确认货物唯一要做的就是获得您提到的准确标签。再一次,这是完全可以预期的。