Software Is Made Between Commits
Software Is Made Between Commits
软件是在提交(Commit)之间诞生的
I have never been a big fan of pull requests. Before agents, it was easier to believe that the ceremony of trading comments on snapshots was an effective way to collaborate on software, but it never really worked for the Zed team. We frequently work together in the same worktree, building trust and shared understanding by discussing the code as we write it. GitHub doesn’t let you talk about code until after you commit and push, but by then our most important conversations are usually already over.
我从来都不是 Pull Request 的忠实拥趸。在 AI Agent 出现之前,人们更容易相信那种针对代码快照进行评论的“仪式感”是一种有效的协作方式,但这在 Zed 团队中从未真正奏效。我们经常在同一个工作树(worktree)中协同工作,通过在编写代码的同时进行讨论来建立信任和共识。GitHub 不允许你在提交(commit)和推送(push)之前讨论代码,但等到那时,我们最重要的对话往往已经结束了。
So in 2021, we founded Zed to move beyond the constraints of commits. Our plan was to build an editor worthy of the world’s best developers, then offer a better way to work together inside it. We didn’t foresee then how the problems we’d spent years thinking about in the context of human-to-human collaboration would become even more important when collaborating with agents. Increasingly, the conversation that generates the code is becoming the true source of our software. That conversation unfolds continuously and must be cross-referenced to the code as it changes. Git, organized around discrete commits, was never designed to support this. So we’re building something that is.
因此,我们在 2021 年创立了 Zed,旨在超越提交(commit)的束缚。我们的计划是打造一款配得上全球顶尖开发者的编辑器,并在其中提供更好的协作方式。当时我们并未预见到,那些我们多年来在人与人协作背景下思考的问题,在与 AI Agent 协作时会变得更加重要。如今,生成代码的对话正日益成为我们软件的真正源头。这种对话是持续展开的,并且必须在代码变更时与代码进行交叉引用。而以离散提交为核心的 Git,从未被设计用来支持这一点。所以,我们正在构建一个能够支持它的系统。
We call it DeltaDB, a new kind of version control built on a single coherent abstraction that transforms your conversations with agents and the worktrees they edit into shared artifacts. We’ve made a ton of progress since I first spoke about it last fall, and with a beta version ready in a few weeks, I’m excited to share more about what we’re launching.
我们称之为 DeltaDB,这是一种新型的版本控制系统,它建立在一个单一且连贯的抽象之上,将你与 Agent 的对话以及它们编辑的工作树转化为共享的产物。自去年秋天我首次提及它以来,我们已经取得了巨大的进展。随着测试版在几周内准备就绪,我很高兴能分享更多关于我们即将发布的内容。
Every operation, not just every commit
不仅仅是提交,而是每一次操作
DeltaDB breaks your work into a stream of fine-grained deltas. Where Git captures a snapshot at each commit, DeltaDB captures every operation in between and gives each one a stable identity. Because every delta can be addressed on its own, you can point to the code at any moment in its evolution, even as it keeps changing. That lets us version a worktree as it evolves, together with the conversation driving it. A message and the edit it produced are recorded side by side, so neither drifts away from the other.
DeltaDB 将你的工作拆解为一系列细粒度的增量(deltas)。Git 在每次提交时捕获一个快照,而 DeltaDB 则捕获期间的每一次操作,并为每一个操作赋予一个稳定的标识。由于每一个增量都可以被单独寻址,你可以在代码演进的任何时刻指向它,即使代码在不断变化。这使我们能够在工作树演进的同时对其进行版本控制,并将其与驱动这些变更的对话关联起来。一条消息及其产生的编辑被并排记录,因此两者不会彼此脱节。
Because DeltaDB embeds conflict-free replicated worktrees, many people and agents can edit the same files at once across different machines. The files are real: agents work in them through a terminal, and you can mount the whole worktree to disk whenever you want your own tools on it.
由于 DeltaDB 内置了无冲突复制工作树(conflict-free replicated worktrees),多个人和多个 Agent 可以同时在不同机器上编辑同一个文件。这些文件是真实的:Agent 通过终端在其中工作,而当你需要使用自己的工具时,可以随时将整个工作树挂载到磁盘上。
Source code is now source conversation
源代码即对话源
Because every reference is anchored to a delta instead of a line number, it survives as the code moves underneath it. From any line in a past conversation, you can jump to that code as it stands now or as it stood the moment the agent wrote it. From any line of code, you can find the conversation that produced it and every conversation that has touched it since. Agents can draw on it too. They pick up the context behind the code they’re touching or convene the prior agents that worked on it and ask why it’s written the way it is.
由于每一个引用都锚定在一个增量上,而不是行号上,因此即使代码发生变动,引用依然有效。在过去对话的任何一行,你都可以跳转到该代码的当前状态,或者它在 Agent 编写时的状态。从代码的任何一行,你都可以找到生成它的对话,以及此后所有触及过它的对话。Agent 也可以利用这一点。它们可以获取所触及代码背后的上下文,或者召集之前参与过该代码的 Agent,询问为什么代码是这样编写的。
You shouldn’t need to commit to collaborate
协作不应依赖于提交
What we’re really after is simple: the conversation with the agent becomes the only conversation you need to have. A teammate can join while the work is still happening, talk to the agent that did the work, and annotate as they go, without waiting for you to commit and push first. Pull requests, review threads, and inline comments exist to reattach a discussion to code after the fact because the discussion and the code lived in separate places. Put them in the same place, and the ceremony disappears. Git and CI stay for what they’re good at: running checks and connecting you to the rest of the world, rather than being the place collaboration is forced to happen.
我们真正追求的目标很简单:与 Agent 的对话成为你唯一需要进行的对话。队友可以在工作进行时加入,与执行工作的 Agent 对话,并随时进行标注,而无需等待你先提交和推送。Pull Request、审查线程和行内评论之所以存在,是因为讨论和代码处于不同的地方,必须事后重新关联。如果将它们放在同一个地方,那种仪式感就消失了。Git 和 CI 依然保留它们擅长的功能:运行检查并连接外部世界,而不是作为被迫进行协作的地方。
What comes next
接下来是什么
Software now takes shape in the conversation, not the commit. DeltaDB is the version control built for that, and in a few weeks we’ll start putting it in the hands of early users. If you’d like to be among the first to try it, join the waitlist.
软件现在是在对话中成形的,而不是在提交中。DeltaDB 正是为此而构建的版本控制系统,几周后我们将开始向早期用户开放。如果你想成为第一批尝试的用户,请加入等待名单。