#cargo #lock-file #diff #dependencies #lockdiff

app cargo-lockdiff

通过比较 Cargo.lock 与您选择的 vcs 引用或文件,查看在运行 cargo update 后哪些 crates 已更改

4 个版本 (2 个破坏性更改)

0.3.1 2022 年 3 月 22 日
0.3.0 2022 年 3 月 8 日
0.2.0 2020 年 4 月 3 日
0.1.0 2020 年 4 月 3 日

#350Cargo 插件

每月 23 次下载

MIT 许可证

27KB
503

cargo-lockdiff

Crates.io

通过比较 Cargo.lock 与 vcs HEAD 或您选择的文件,查看在运行 cargo update 后哪些 crates 已更改。

支持 git、mercurial 和纯文件。

示例

原始

$ cargo lockdiff --from "HEAD@{2 months ago}"

| Package                      | From    | To                           | Compare    |
|------------------------------|---------|------------------------------|------------|
| [serde_json][C6]             | 1.0.42  | 1.0.48                       | [...][C7]  |
| [sha2][C8]                   | 0.8.0   | 0.8.1                        | [...][C9]  |
| [sharded-slab][CA]           | NEW     | 0.0.8                        |            |
| signal-hook                  | 0.1.12  | REMOVED                      |            |
| [smallvec][CB]               | 1.0.0   | 1.2.0                        | [...][CC]  |
| spin                         | 0.5.2   | REMOVED                      |            |
| string                       | 0.2.1   | REMOVED                      |            |
| [strum][CD]                  | NEW     | 0.18.0                       |            |
| [strum_macros][CE]           | NEW     | 0.18.0                       |            |
| [syn][CF]                    | 1.0.11  | 1.0.17                       | [...][D0]  |
| [thiserror][D2]              | NEW     | 1.0.13                       |            |
| [thiserror-impl][D3]         | NEW     | 1.0.13                       |            |
| [thread_local][D4]           | NEW     | 1.0.1                        |            |
| [tokio][D5]                  | NEW     | 0.2.13                       |            |
| [tokio-codec][D6]            | 0.1.1   | 0.1.2                        | [...][D7]  |
| tokio-signal                 | 0.2.7   | REMOVED                      |            |
| [tracing][F1]                | 0.1.10  | 0.1.13                       | [...][F2]  |
| [tracing-attributes][F3]     | 0.1.5   | 0.1.7                        | [...][F4]  |

[C6]: https://crates.io/crates/serde_json
[C7]: https://github.com/serde-rs/json/compare/1%2E0%2E42...1%2E0%2E48
[C8]: https://crates.io/crates/sha2
[C9]: https://github.com/RustCrypto/hashes/compare/0%2E8%2E0...0%2E8%2E1
[CA]: https://crates.io/crates/sharded-slab
[CB]: https://crates.io/crates/smallvec
[CC]: https://github.com/servo/rust-smallvec/compare/1%2E0%2E0...1%2E2%2E0
[CD]: https://crates.io/crates/strum
[CE]: https://crates.io/crates/strum_macros
[CF]: https://crates.io/crates/syn
[D0]: https://github.com/dtolnay/syn/compare/1%2E0%2E11...1%2E0%2E17
[D2]: https://crates.io/crates/thiserror
[D3]: https://crates.io/crates/thiserror-impl
[D4]: https://crates.io/crates/thread_local
[D5]: https://crates.io/crates/tokio
[D6]: https://crates.io/crates/tokio-codec
[D7]: https://github.com/tokio-rs/tokio/compare/0%2E1%2E1...0%2E1%2E2
[F1]: https://crates.io/crates/tracing
[F2]: https://github.com/tokio-rs/tracing/compare/0%2E1%2E10...0%2E1%2E13
[F3]: https://crates.io/crates/tracing-attributes
[F4]: https://github.com/tokio-rs/tracing/compare/0%2E1%2E5...0%2E1%2E7

渲染

来自 比较
serde_json 1.0.42 1.0.48 ...
sha2 0.8.0 0.8.1 ...
sharded-slab 新增 0.0.8
signal-hook 0.1.12 移除
smallvec 1.0.0 1.2.0 ...
spin 0.5.2 移除
string 0.2.1 移除
strum 新增 0.18.0
strum_macros 新增 0.18.0
syn 1.0.11 1.0.17 ...
thiserror 新增 1.0.13
thiserror-impl 新增 1.0.13
thread_local 新增 1.0.1
tokio 新增 0.2.13
tokio-codec 0.1.1 0.1.2 ...
tokio-signal 0.2.7 移除
tracing 0.1.10 0.1.13 ...
tracing-attributes 0.1.5 0.1.7 ...

安装

cargo install cargo-lockdiff

# try it
cargo lockdiff --help

依赖关系

要使用 githg,相应的二进制文件必须在 PATH 中找到。需要 cargo metadata 来生成链接。

用法

cargo update
# don't commit yet!
cargo lockdiff

或者在 vim 中,要将输出插入到提交信息中,请输入 :r!cargo lockdiff

要查看很久以前(在 git 中)更改的内容,

cargo lockdiff --from "HEAD@{2 months ago}"

选项

CARGO_LOCKDIFF_ 前缀的环境变量,例如 CARGO_LOCKDIFF_NO_LINKS=true,也可以使用。将这些设置在您的 ~/.profile 中(当然,针对您的 shell)作为默认值。

  • -p, --path <path>:用于路径前缀的基路径。例如,使用 -p app 将查找 HEAD:app/Cargo.lock 和 app/Cargo.lock。环境变量:CARGO_LOCKDIFF_PATH

  • --from <fileish>:要比较的文件、vcs引用,或带文件名的vcs引用。要强制使用特定的vcs,请在其前加上冒号。例如,“hg:.” 环境:CARGO_LOCKDIFF_FROM

  • --to <fileish>:要比较的文件、vcs引用,或带文件名的vcs引用。要强制使用特定的vcs,请在其前加上冒号。例如,“hg:.” 环境:CARGO_LOCKDIFF_TO

  • -n, --no-links:尽可能包含链接。环境:CARGO_LOCKDIFF_NO_LINKS("true"或"false")

  • --help:显示使用信息

比较网址

比较网址是尽力而为的。不幸的是,crate版本号和VCS标签之间没有严格的映射,所以网址只是猜测。似乎没有太多一致性。许多维护者似乎在版本号标签前加上“v”或,对于更大的项目,各个crate的名称。如果有人有想法如何改进它,我将很乐意尝试一些。

目前仅支持Github。其他将陆续添加。

待办事项

依赖关系

~5.5–7.5MB
~138K SLoC