kunchenguid/treehouse
Manage worktrees without managing worktrees.
它解决了什么问题
Treehouse 管理一个可重用的、隔离的 git worktree 池,从而消除了手动处理同一个仓库的多个克隆版本或为每个 AI agent 会话创建新 worktree 的需求。它能防止 agent 之间发生冲突,并确保依赖项和构建缓存可以在会话之间保留,从而加快 agent 的执行速度。
工作原理
Treehouse 在配置的根目录(默认为 ~/.treehouse/)中维护一个 worktree 池。当用户或 agent 请求一个 worktree 时,Treehouse 会扫描池中是否有空闲、干净且可重用的 worktree。如果找到了,它会将该 worktree 重置为最新的默认分支;否则,它会以 detached HEAD 模式创建一个新的 worktree。
关键机制包括:
- Subshell Access:用户会被带入 worktree 内的一个 subshell 中;退出 shell 后,worktree 会返回到池中。
- Durable Leases:worktree 可以被租用以进行持久使用,而无需运行长寿命进程,这需要通过显式的返回命令来回收。
- In-use Detection:该工具会扫描运行中的进程和预留情况,以确保在 worktree 处于活动状态时不会将其分配出去。
- Safety Checks:修剪(Pruning)和销毁 worktree 默认采用 dry-run 模式,并且除非使用了特定的覆盖标志,否则只会移除干净且已合并到默认分支的 worktree。
适用人群
需要为同一个项目提供多个隔离环境,但又不想承担克隆开销或丢失构建缓存的开发者和 AI agent 运营者。
亮点
Instant Isolation:快速进入一个干净的 worktree,无需手动设置。
Reusable Environments:保留依赖项和构建缓存,以避免冗余安装。
Conflict-Free:自动检测正在使用的 worktree,防止 agent 之间互相干扰。
Safe Management:稳健的修剪机制、对孤儿 worktree 的清理以及对损坏的池状态文件的状态恢复能力。
相关
- 项目
- 项目
- 项目
- 项目
- 项目