Hacker News AI · 2026/10/15 04:30:54

Anthropic 发布 Scion 版本控制系统:借鉴 Mononoke 引入递归派生数据机制优化 Blame 查询

原标题:Anthropic's Scion is heavily inspired by Mononoke
48AI 研判分
核心综述

Anthropic 推出新型版本控制系统 Scion,其核心设计深受 Meta Mononoke 启发。Scion 通过“派生数据”概念,利用递归机制从变更集父节点计算文件 Blame 和路径历史等数据结构,显著提升了代码溯源操作的效率。

报道全文原始报道全文

Discuss on Hacker News or Lobsters.

Here is Anthropic describing (archive link) yesterday how their new version control system, Scion, uses a concept called “derived data” to make operations like blames more efficient:

A changeset records only what’s changed, so on its own, it can’t quickly answer questions like who last edited a line or which commits affected a file. To answer those, Scion builds additional data structures from the changesets, including dedicated structures for file blame and path history and skip lists for the commit graph. We call everything that isn’t directly part of the changeset “derived data,” and we compute it all through one generic mechanism. Each type of derived data is defined recursively, so its value for a changeset is computed from its values for that changeset’s parents. This mechanism has three benefits. First, we can easily add a new type of derived data when a new data structure would make some operation faster. Second, for each type, we can choose whether to compute it eagerly or defer the work, so we avoid materializing data we don’t need. And third, because the client never sees the internals of these data structures, we can optimize them without changing the client. We’ve added new types of derived data many times as the system has grown, such as new indices for performing copy detection or path-based file search.How Anthropic describes Scion’s derived data.

Here is me, back in 2022, describing in my Oxide candidate materials how the Mononoke source control server I helped build uses a concept called “derived data” to make operations like blames more efficient:

I think the level of imitation goes well beyond having similar insights1. The fact that Sapling was only credited for “hard-won lessons”, and that Mononoke was not mentioned at all, borders on plagiarism. The post comes off as Anthropic claiming that Claude designed all this, while the reality is that our (extraordinary) team at Meta came up with many of the insights that Claude dutifully applied almost a decade later. (We looked at plenty of prior art for Mononoke and Sapling too, from Google’s SrcFS to write-ahead logs in databases.)

I am very glad that the vision our team had back in 2017-18 was so powerful and enduring — when you go against the grain, you’re always a bit unsure if what you’re doing is genius or madness, and I think Mononoke’s design has stood the test of time. And, to be clear, I do not have a problem with Anthropic copying Mononoke’s design. (This is part of why we put out open source — to benefit humanity through the spread of good ideas.)

Giving credit to those that came before us is now easier — and more important — than ever. There is no longer an excuse.


  1. For an example of a system with similar insights but many key design differences, see Vicent Marti’s blog post for Cursor. ↩︎

Read other posts


iddqd, or the hardest kind of unsafe Rust →