Как указать определенный коммит в зависимостях в Cargo.toml? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь настроить мой проект Rust с внешней зависимостью в GitHub. К сожалению, некоторые последние коммиты внесли некоторые изменения в интерфейсы, поэтому я не могу использовать последнюю версию. Разработчики также не заботятся о тегах и отдельных ветках для разных версий, поэтому я думаю, что единственный правильный путь - это указать определенный коммит как-то, где интерфейс соответствует тому, с чем я работал.

Что у меня сейчас в Cargo.toml есть:

[dependencies]
...
thelib = { git = 'https://github.com/someguys/thelib' }

Я видел, что можно указать ветку следующим образом:

thelib = { git = 'https://github.com/someguys/thelib', branch = 'branch1' }

Но я не видел рабочего примера с коммитом. Может ли кто-нибудь предоставить один здесь?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Как указано в разделе Cargo.toml против Cargo.lock руководства по грузам, вы можете использовать свойство rev, чтобы указать хеш коммита:

[...] Если вы создадите этот пакет сегодня, а затем отправите мне копию, а я создаю этот пакет завтра, может произойти что-то плохое. Тем временем может быть больше коммитов, и моя сборка будет включать новые коммиты, а ваша - нет. Поэтому мы бы получили разные билды. Это было бы плохо, потому что мы хотим воспроизводимые сборки.

Мы могли бы решить эту проблему, добавив строку rev в наш Cargo.toml:

[dependencies]
rand = { git = "https://github.com/rust-lang-nursery/rand.git", rev = "9f35b8e" }

Это также упоминается в Указание зависимостей , хотя пример не приводится (выделено мной):

Поскольку мы не указали никакой другой информации, Cargo предполагает, что мы собираемся использовать последний коммит в ветке master для сборки нашего пакета. Вы можете комбинировать клавишу git с клавишами rev, tag или branch , чтобы указать что-то еще. Вот пример указания, что вы хотите использовать последний коммит в ветви с именем next:

0 голосов
/ 15 января 2019

Вы можете использовать клавишу rev, чтобы указать хеш коммита. Например:

thelib = { git = "https://github.com/someguys/thelib", rev = "9f35b8e" }

Это кратко упомянуто в этом разделе Книги грузов .

...