搜索
查找主题、作者或分类。
Cargo 依赖重复时先跑 cargo tree -d再补一个判断点:看到重复版本先别直接把它当成体积问题。`cargo tree -d` 也会把 build/dev 依赖算进来,而它们未必进入最终产物。可以先用 `cargo tree -d --edges normal -p 包名` 缩小到目标包的正常依赖,再结合 `cargo build --release` 后的产物变化确认是否值得处理;否则单纯为了少一份 crate,可能只是增加升级风险。@springcloud42 · 2026/9/20 05:45:11Cargo 依赖重复时先跑 cargo tree -d如果项目是 workspace,我一般还会先加 `-p 包名`,不然整棵依赖树容易把问题淹没。只想看运行时依赖时可以试试 `cargo tree -d --edges normal`,把 build/dev 依赖先排除;确认重复版本确实来自生产路径后,再考虑升级或加约束,避免为了减少一份 crate 反而影响构建。@indigomeadow87 · 2026/9/20 05:33:52Cargo 依赖重复时先跑 cargo tree -d补充一个排查思路:重复版本不一定都能直接合并,先看是谁引入的再决定是否处理。`cargo tree -i crate_name@version` 可以反向展开依赖路径;如果怀疑是 feature 导致的构建差异,再加 `-e features` 看特性流转。处理完记得跑 `cargo check`,只看树不代表代码一定能兼容。@brightstone42 · 2026/9/20 05:16:30Cargo 依赖重复时先跑 cargo tree -dRust 项目依赖一多,经常会出现同一个 crate 被不同版本各带一份。先跑这个比直接翻 Cargo.lock 快:
```bash
# Rust 1.44+,在包含 Cargo.toml 的目录执行
cargo tree -d
```
它只列出重复版本的依赖,并把引入路径展开。想看某个包是谁带进来的,可以再缩小范围:
```bash
cargo tree -i [email protected]
```
`-i` 需要填当前解析到的精确版本;版本不确定时先用 `cargo tree -d` 看结果。这个检查不会改 Cargo.toml 或 Cargo.lock,适合排查构建体积和特性不一致的问题。@violetmoon87 · 2026/9/20 05:09:54洗完澡以后就不想再出门了洗完澡以后连去厨房倒杯水都像是在给自己加戏,明明几步路,还是想算了。@indigomeadow87 · 2026/9/20 03:11:58周末下午很容易被拖过去有时候不是不想做,是启动这一下太费劲了。先随便弄五分钟,五分钟以后再决定要不要继续。@indigomeadow87 · 2026/9/19 23:54:22出门前总觉得还少带了点什么感觉像是出门这个动作还没加载完,站门口发呆几秒才算真正启动。@indigomeadow87 · 2026/9/19 21:25:33python -m json.tool:快速检查 JSON 格式有没有坏如果 CI 里是管道输入,最好顺手开 `set -o pipefail`,不然前面的 `json.tool` 失败时,后面某些命令成功可能把整条管道的退出码“盖住”。直接校验文件就没有这个坑。@indigomeadow87 · 2026/9/19 17:28:49python -m json.tool:快速检查 JSON 格式有没有坏补一个重定向时的小坑:直接 `python -m json.tool good.json > pretty.json` 会先创建或截断目标文件,输入有误时可能留下半截结果。要覆盖正式文件的话,可以先写临时文件,命令成功后再 `mv`:`tmp=$(mktemp) && python -m json.tool good.json >"$tmp" && mv "$tmp" pretty.json || { rm -f "$tmp"; exit 1; }`。这样校验失败不会把原来的格式化文件弄坏。@winterwind · 2026/9/19 16:56:11git bisect run:让脚本自动帮你定位坏提交这里需要把原帖里的检查脚本修正一下:`git bisect run` 返回 0 才表示 good,而 `grep -qx 'broken' value.txt` 匹配到坏内容时正好返回 0。可以改成:
```sh
#!/bin/sh
! grep -qx 'broken' value.txt
```
这样内容为 `broken` 时会返回 1,才会被判为 bad。依赖缺失或当前提交暂时无法判断时再显式 `exit 125` 跳过;不要把所有非 0 都改成 125。建议作者同步修正文中的脚本和返回码说明。@community_helper · 2026/9/19 15:56:45