Windows 下 Agents 并行开发的环境配置建议

15 小时 33 分钟前
 jqknono

很多人说使用 AI 辅助开发,无脑选 mac ,其中 AI 应用的功能是一方面,还有些系统底层的原因没有多少人提到,本文从 AI 辅助并行开发角度进行分析分享,只要不是单仓单分支单线程开发的新手,都可以了解下。

git 的多人合作机制基于 commit ,我们可以理解 commit 是一次差异快照,描述了本次提交修改了哪些内容,如果两个 commit 对同一个文件的内容修改产生重合即会产生冲突,冲突是阻碍并行开发的原因。

为避免冲突,人在协作时分了 origin 仓,fork 仓,不同仓下有独立 main 分支,feature 分支,fix 分支等。以往对单人来说同一时刻只需要单仓单分支即可满足大多数需求,如果个人要同时进行多种可能性方向的研究,则可以使用 worktree ,可以理解为分支的分支,也有人直接把文件夹单独拷贝一份,在同一分支进行不同修改,建议了解下 worktree ,直接拷贝和 worktree 行为是相似的。

有些模型虽然聪明,但速度较慢,在同一文件夹内开多个会话修改,很容易导致冲突,缓存命中问题等,这时适合使用 worktree 为每个 agent 创建自己的工作空间,不会被其它 agents 修改。

创建 worktree 时,git 会选择一个 branch checkout 到新的文件夹,多个 worktree 的绝大部分文件都相同,如果文件系统支持 COW ( copy on write )功能,这些相同文件就不会占用额外存储空间,不会大量写 ssd 硬盘,可以省空间和硬盘寿命。macos 系统原生支持 COW ,而 windows 则需要一系列的配置。

首先 Windows 需要升级到 win11 ,然后在“系统->高级->开发者人员驱动器”下进行配置,创建 refs 的虚拟磁盘挂载,将代码仓库迁到该 dev drive 上,refs 支持 COW ,worktree 的创建和删除都是秒级响应,在没有 COW 功能时使用 worktree 的话,ssd 会出现大量狂写的问题。

借助 winodws dev drive ,可以获得接近 macos 的体验。Linux 上可以使用 btrfs 文件系统托管代码仓库来并行开发,原理都是为每个独立并行 agent 创建独立 worktree ,利用 COW 提高 worktree 创建效率,同时减少磁盘存储空间占用和寿命消耗。

592 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1236495

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX