#子命令 #cargo子命令 #替换 #编辑 #本地 #cargo-toml

app cargo-edit-locally

一个Cargo子命令,用于通过[replace]编辑本地依赖项

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日

#507Cargo插件

MIT/Apache

14KB
192

cargo-edit-locally

Build Status Build status

这是一个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