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 日 |
#350 在 Cargo 插件
每月 23 次下载
27KB
503 行
cargo-lockdiff
通过比较 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
依赖关系
要使用 git
或 hg
,相应的二进制文件必须在 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。其他将陆续添加。
待办事项
- 处理manifest-path,https://docs.rs/cargo_metadata/0.9.1/cargo_metadata/4
- 测试用例
- Http源
- 研究其他流行的Rust VCS,添加它们。
- 输出格式,如JSON
依赖关系
~5.5–7.5MB
~138K SLoC