10 个版本
0.1.10 | 2024 年 7 月 27 日 |
---|---|
0.1.9 | 2023 年 12 月 16 日 |
0.1.6 | 2023 年 11 月 6 日 |
0.1.5 | 2023 年 10 月 27 日 |
687 在 命令行实用工具 中
每月 659 次下载
27KB
305 代码行
Patch-Crate
patch-crate 允许 Rust 应用程序开发者即时创建并保留对 Rust crate 依赖的修复。它是那些生活在尖端的人的救命稻草。
# fix a bug in one of your dependencies
vim target/patch/brokencrate
# run patch-crate to create a .patch file
cargo patch-crate some-crate
# commit the patch file to share the fix with your team
git add patches/some-crate+3.14.15.patch
git commit -m "fix broken_file.rs in some-crate"
请查看我们的示例:[这里](https://github.com/mokeyish/cargo-patch-crate-example)
开始使用
-
安装命令
patch-crate
cargo install patch-crate
-
在 Cargo.toml 中添加损坏的 crate
[package.metadata.patch] crates = ["some-crate"] [patch.crates-io] some-crate = { path="./target/patch/some-crate-1.0.110" }
-
将 crate 的源代码下载到
target/patch
cargo patch-crate
-
直接在
target/patch/some-crate
中修复损坏的代码。 -
创建 crate-patch
cargo patch-crate some-crate
-
提交补丁文件以与团队分享修复
git add patches/some-crate+1.0.110.patch git commit -m "fix broken-code in some-crate"
-
除了运行 cargo patch-crate,还可以添加一个 build.rs 文件,如下所示
fn main() { println!("cargo:rerun-if-changed=Cargo.toml"); patch_crate::run().expect("Failed while patching"); }
要使其正常工作,请将 patch-crate 库添加到构建依赖项中
patch-crate = "0.1"
命令解释
-
cargopatch-crate
将
./patches
中的补丁文件应用到./target/patch/crate-xxx
,如果不存在则创建。 -
cargopatch-crate --force
清理
./target/patch/
并将./patches
中的补丁文件应用到./target/patch/crate-xxx
。 -
cratepatch-crate <cratename1> <cratename2> ...
从
./target/patch/crate-xxx
创建特定 crate 的补丁文件并保存到./patches
致谢
许可证
许可协议为以下之一
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
依赖项
~85MB
~1.5M SLoC