< 返回版块

HelloBody 发表于 2026-03-28 18:54

Tags:cargo,git,agent,worktree,multi-compile

痛点

在使用 git worktree + 多个 agent 开发 Rust 项目时,Cargo 的默认行为会让所有构建共享同一个全局目录:

target/
.cargo/.package-cache
registry cache
target/.cargo-lock

这会导致几个严重问题:

  • 多个 worktree 同时构建会互相覆盖 target/
  • CI 多 agent 并发构建会争抢 .cargo-lock
  • 增量编译缓存被污染,构建结果不稳定
  • 本地与 CI 行为不一致,debug 成本高

换句话说:

Rust 项目一旦进入 multi-worktree / multi-agent 模式,Cargo 默认的 target 目录就会成为的瓶颈。

解决方案:cargo‑worktree

我们发布了 cargo‑worktree,为每个 worktree 自动分配独立的构建目录:

target/git/<namespace(branch/rev)>/

特点:

  • 每个 worktree 独立 target → 不再互相覆盖
  • 并发构建安全 → 不会再争抢 .cargo-lock
  • 增量编译缓存稳定 → 不会被其他分支污染
  • 零侵入 Cargo → 仍然是 cargo build 的体验

crate: https://crates.io/crates/cargo-worktree/1.0.0

安装:

cargo install cargo-worktree

使用:

cargo worktree build
cargo worktree test
cargo worktree run

demo

cargo_worktree.png

欢迎大家使用和反馈

评论区

写评论
作者 HelloBody 2026-03-29 15:46

相关代码已经开源。

https://github.com/SuccinctPaul/cargo-worktree

具体使用场景:对于rust的项目,使用多个agent同时开发多个功能的时候,为了避免功能的相互污染以及编辑,往往使用git-worktree配合使用。即每个功能都是一个新的branch feat/xxx, 然后每个agent只关注当前的功能和branch的改动。 配合cargo-worktree 可以让agent+git worktree的并行开发中,不被cargo的cache 争抢 .cargo-lock .

会根据大家的使用反馈进行维护。因为编译还有很多可以优化的点,后续的路线图,我还在进行调研(期待交流)。

--
👇
eouzoe: 有設計文件 具體代碼 實際使用場景展示 測試 後續開發更新維護的路線圖與規劃嗎

eouzoe 2026-03-29 05:56

有設計文件 具體代碼 實際使用場景展示 測試 後續開發更新維護的路線圖與規劃嗎

1 共 2 条评论, 1 页