背景
PR #9 引入了 bare clone 缓存层,多个 session 可能并发访问同一缓存仓库。当前 ensureBareCache 存在 TOCTOU 竞态:两个并发请求可能同时 clone 同一仓库(浪费带宽),git fetch 与 git clone 也可能同时操作同一 bare cache。
需求
- 使用文件锁(
flock 或 proper-lockfile)互斥同一缓存目录的 fetch 和 clone 操作
- 多个 fetch 并发时串行化
参考
设计文档 docs/workspace-cache-and-restart.md 2.3 节
背景
PR #9 引入了 bare clone 缓存层,多个 session 可能并发访问同一缓存仓库。当前
ensureBareCache存在 TOCTOU 竞态:两个并发请求可能同时 clone 同一仓库(浪费带宽),git fetch与git clone也可能同时操作同一 bare cache。需求
flock或proper-lockfile)互斥同一缓存目录的 fetch 和 clone 操作参考
设计文档
docs/workspace-cache-and-restart.md2.3 节