#cargo-toml #patch #override #git #section #quickly #registry

bin+lib cargo-override

使用 [patch] 部分,快速覆盖 Cargo.toml 中的依赖项。

2 个版本

0.1.0 2023 年 8 月 21 日
0.1.0-alpha.22024 年 8 月 22 日

320Cargo 插件

Download history 2/week @ 2024-07-04

每月 76 次下载

Apache-2.0 OR MIT

39KB
611

cargo-override

快速 覆盖依赖项,使用 [patch] 部分。

此插件添加了一个新的 cargo 子命令 cargo override,使您能够轻松地使用自定义本地副本或 Git 版本修补依赖项。

cargo override 自动推断出您通常需要手动检查的许多内容。

[patch.crates-io]
#      ^^^^^^^^^ The correct registry for this dependency
anyhow = { path = "../anyhow" }
#          ^^^^^^^^^^^^^^^^^ A crate called "anyhow" is exposed at this source
#^^^^^ The name of the crate to patch
#                  ^^^^^^^^^
#                  The version of anyhow exposed here meets, the requirement
#                  we set in our `Cargo.toml`, so it will be valid as a patch

[!NOTE]
cargo-override 目前仍处于 alpha 版,可能存在一些粗糙的边缘。如果您遇到错误或发现可以改进的地方,请告诉我们,即使问题很轻微。

安装

首先,确保您已安装最新版本的 cargo

然后,可以使用 cargo 安装 cargo override

cargo install [email protected] --locked

未来将提供其他安装方法。

用法

使用本地版本覆盖依赖项

要使用本地副本覆盖依赖项,请使用 --path

例如,如果相对路径 ../anyhow 包含对 anyhow crate 的修改版本

cargo override --path ../anyhow

结果,一个类似于以下内容的补丁将被附加到您的 Cargo.toml

[patch.crates-io]
anyhow = { path = "../anyhow" }

使用 Git 版本覆盖依赖项

要使用 Git 源覆盖依赖项,请使用 --git

例如,如果 https://github.com/dtolnay/anyhow 包含了尚未在 crates.io 上发布的 anyhow crate 的新版本,那么就可以使用它。

cargo override --git https://github.com/dtolnay/anyhow

结果,一个类似于以下内容的补丁将被附加到您的 Cargo.toml

[patch.crates-io]
anyhow = { git = "https://github.com/dtolnay/anyhow" }

此外,可以使用标志 --branch--tag--rev 分别从特定的分支、标签或 Git 修订版获取仓库。

依赖项

~85MB
~1.5M SLoC