4 个版本
使用旧的Rust 2015
0.1.3 | 2017年9月20日 |
---|---|
0.1.2 | 2017年6月1日 |
0.1.1 | 2017年5月11日 |
0.1.0 | 2017年5月3日 |
#507 在 Cargo插件
14KB
192 行
cargo-edit-locally
这是一个Cargo子命令,旨在允许轻松管理Cargo.toml的[replace]
部分。
安装
目前可以使用以下方式安装
$ cargo install cargo-edit-locally
您还可以安装在CI上为这个crate组装的预编译的二进制文件。
示例用法
在我们对一些Rust代码进行了一段时间的工作后,假设我们在crates.io上有一个对log
crate的依赖。我们认为我们在log
crate中找到了一个bug,因此我们想测试我们的发现并检查它。首先,让我们看看我们的$CODE/Cargo.toml
[package]
name = "foo"
version = "0.1.0"
[dependencies]
log = "0.3"
假设我们已经在本地上检出log
并想验证它是否修复了我们的bug
$ cd $CODE
$ cargo edit-locally log --path ../log
$
这样,本地的项目foo
现在已配置为使用我们本地代码目录中的log
文件夹。我们可以看到,现在Cargo.toml
中有一个[[replace]
][replace]部分
[replace]
'log:0.3.7' = { path = 'log' }
最后,现在可以从我们的本地构建中使用log
crate了!
$ cargo build
Compiling log v0.3.7 ($CODE/log)
Compiling foo v0.1.0 ($CODE)
Finished dev [unoptimized + debuginfo] target(s) in 1.97 secs
如果我们想测试一个git仓库,我们可以使用
$ cargo edit-locally log --git https://github.com/rust-lang-nursery/log
要查看您可用的完整选项集以及另一个帮助消息,请执行
$ cargo help edit-locally
撤销本地编辑
要回到使用crates.io,您只需删除清单中的[replace]
部分即可。这将回到使用锁文件中的版本,下一次执行cargo build
命令时,将从crates.io编译代码而不是从您的本地文件夹编译。
删除[replace]
部分后,如果需要,您还可以删除检出文件夹。
注意事项
此子命令会自动尝试编辑Cargo.toml
并在其中为您插入一个[replace]
部分。遗憾的是,目前还没有一种非常好的方法来编辑TOML文件,同时保留格式化和注释等,所以目前主要只是有一些启发式方法来自动完成这项工作。
如果您发现这些启发式方法对您不起作用,请告诉我,我会尝试提交一个修复方案!
许可证
cargo-edit-locally
主要在MIT许可证和Apache许可证(版本2.0)的条款下分发,部分内容受各种类似BSD的许可证的保护。
请参阅LICENSE-APACHE和LICENSE-MIT以获取详细信息。
依赖关系
~38MB
~725K SLoC