我正在尝试在GitHub中使用外部依赖项配置Rust项目。不幸的是,最后的一些提交对接口进行了一些更改,因此我无法使用最新版本。开发人员也不关心标记和不同版本的单独分支,因此我认为唯一正确的方法是以某种方式指定某个提交,以使其适合我的界面。
我现在在Cargo.toml
中拥有的是:
[dependencies]
...
thelib = { git = 'https://github.com/someguys/thelib' }
我看到可以这样指定分支:
thelib = { git = 'https://github.com/someguys/thelib', branch = 'branch1' }
但是我还没有看到一个关于提交的可行示例。有人可以在这里提供吗?
答案 0 :(得分:5)
如《货运指南》的Cargo.toml vs Cargo.lock部分所述,您可以使用rev
属性指定提交哈希:
[...]如果您今天构建此程序包,然后将副本发送给我,而我明天构建此程序包,则可能会发生某些不良情况。同时,可能会有更多的rand提交,而我的构建将包括新的提交,而您的不包括。因此,我们将获得不同的版本。这很糟糕,因为我们想要可复制的版本。
我们可以通过在我们的Cargo.toml中放置转行来解决此问题:
[dependencies] rand = { git = "https://github.com/rust-lang-nursery/rand.git", rev = "9f35b8e" }
Specifying dependencies中也提到了它,尽管没有给出示例(强调我的意思):
由于我们未指定任何其他信息,因此Cargo假设我们打算使用
master
分支上的最新提交来构建我们的程序包。您可以使用rev
,tag
或branch
键组合git键以指定其他内容。这是一个指定您要在名为next的分支上使用最新提交的示例:
答案 1 :(得分:4)
您可以使用 rev
键指定提交哈希。例如:
thelib = { git = "https://github.com/someguys/thelib", rev = "9f35b8e" }
在this section of the Cargo book中已简要提及。