Top
Best
New

Posted by Philpax 8 hours ago

Redesigning source control at Anthropic(www.anthropic.com)
473 points | 470 commentspage 5
real_faxenoff 3 hours ago|
I don't think this SCM stores only code. I think more than 80% of it consists of tests and various types of gold data. All of this is constantly changing, and we need to keep track of it somehow.
rao-v 4 hours ago||
One of the reasons to move to systems like this (not always spoken to explicitly) is to reduce the risk of accidental or deliberate exfiltration of code (esp when paired with build servers and remote deploy etc.). Basically nobody’s laptop ever holds much of a buildable codebase.
zactato 5 hours ago||
How does this compare to Google's in-house source control?

Most companies don't use mono-repos like this. While there are some really compelling advantages, the downsides tend to stack up as a company's codevbase grows.

It's mainly just startups and huge companies. For small companies git works fine for mono-repos and large companies can build their own complex code management pipelines for mono-repos.

I have been questioning whether agentic development changes the mono-repo vs multi-repo question.

atleastoptimal 6 hours ago||
What seems inevitable is that the frontier labs will be able to recreate every piece of software better than the current offerings, and after that everyone will just be a vendor of the frontier labs
ChrisLTD 5 hours ago|
Anthropic says they don’t think Scion is worth a wide release.

> Practically speaking, it’s difficult to offer Scion in a form that would be broadly useful to other organizations. It diverges significantly from git, meaning companies would need to migrate every piece of the development lifecycle, and it requires its own code review, code search, and CI. Our internal versions of these components are highly bespoke, so they would be difficult for other organizations to adopt, and we worry that attempting to build a public version that tries to please everyone wouldn’t actually be very useful.

cube00 5 hours ago||
> attempting to build a public version that tries to please everyone wouldn’t actually be very useful.

What a weak response, just release the version you use and others will decide if it's useful.

JohnMakin 7 hours ago||
> As our monorepo grows, it increasingly doesn’t fit that design space. The history of our main branch alone is almost 100 GB, and a compressed working copy is over 25 GB.

This is absurd, and I expect is a cause of the fact that they seem to use git history as a message queue source of truth between agents. They can do whatever works for them, fine, but I've noticed this has leaked into their training somehow, my agent, despite very strict rules on how to use my git workflow, will do absolutely nonsensical and weird (from a human who has used git for a long time perspective) stuff with git that can only be a byproduct of how they use it.

Hopefully this fixes that, get your weird workflow out of mine.

nickg-anthropic 5 hours ago|
We generally don't allow agents to use source control for coordination in that way. There really is tremendous growth in actual software and code being written that necessitated Scion.
JohnMakin 4 hours ago|||
Well, mine constantly tries to do this, so I made the assumption. Otherwise I can't really understand how you are generating hundreds of millions of commits, either.
svieira 5 hours ago|||
> don't allow

Is this "allow" or "encourage"? If "allow", how do you do that deterministically or at least fail-closed?

bix6 6 hours ago||
> Fetched naively, that would be over 600 PB of git traffic per day.

This seems like an absurd amount of data / traffic per day. Is there really that much to code that needs changing on a daily basis?

nickg-anthropic 2 hours ago||
This would be us doing a shallow checkout of individual commits (not cloning the full history) if we downloaded the 25GB compressed data for whatever commit we needed multiplied by the number of jobs that check out code.

We don't do it this way, for obvious reasons, but it means that there are different levels of caching and infrastructure required to make git work at repo sizes far smaller than what we have.

nh2 6 hours ago|||
No, of course not.

As the article explains, "over 600 PB" = 25M code checkouts * 25 GB "compressed working copy".

So "fetched naively" here means doing a full `git clone` on every need for `git checkout`, which of course nobody should do, nor does that refer to "code that needs changing daily".

steveklabnik 5 hours ago||
> "fetched naively" here means doing a full `git clone` on every need for `git checkout`, which of course nobody should do,

It can be cheaper to do a full clone than a shallow one, because with the shallow one, you can't re-use packfiles. GitHub has fairly regularly asked people to stop doing shallow clones because it's harder on their servers than full ones.

nh2 2 hours ago||
Makes sense. I wasn't suggesting that one should do a shallow clone though. If your company repo is 100 GB, it seems sensible to keep it cached locally on each machine once (100 GB isn't large for current NVMe disks), and `git fetch` the updates the normal way. Then checkouts don't fetch anything large.
nickg-anthropic 21 minutes ago|||
It sounds like it would be simple, but there are a lot of logistical issues with making git happy with this in practice. Repacking things for repo maintenance, for example, but there are many other problems.
steveklabnik 2 hours ago|||
Ah, yes, you can do stuff like that too, for sure.

At some point you still end up running into the issues the article talks about, all of these approaches only get you so far.

falcor84 5 hours ago|||
I don't think anyone "needs" more than perhaps 640KB of git traffic per day, but we want more.
bjornsing 6 hours ago|||
That 600 PB was mostly agents doing ”git clone” and downloading the entire history of their huge monorepo, as I understand it.
rpunkfu 6 hours ago|||
AI iterate quickly, with 100s of followups to fix results
mmmattt 6 hours ago||
No, that’s why they don’t do it that way.
ivanjermakov 6 hours ago||
What was the "quiet week"?
hxugufjfjf 5 hours ago||
Summer holiday or whatever the freedom equivalent is probably.
abeppu 5 hours ago||
which, if true, the low volume in that week says that there aren't a sizable fraction of changes that Anthropic believes can be merged based on the judgement of agents -- humans are still approving almost all changes, right?
hxugufjfjf 3 hours ago||
Someone has to approve all the "allow grep?" calls.
singularity2001 6 hours ago||
maybe they visited huggingface or something similar
colek42 4 hours ago||
This is the wrong way to look at the problem. Maybe they should have asked, "Why does our process need to do so many git checkouts?" Why can't you just run the tests where you already checked out the code?
vb-8448 5 hours ago||
> as of September, we merged over 30,000 per day.

I just wonder what is the churn rate (and the cost per LOC) here.

realo 3 hours ago|
I guess Anthropic are not IEC-62443-4-1 compliant, because I doubt a human reads and understands every single line of those 30,000 merges a day.

What then?

anal_reactor 3 hours ago|
Simple - hire 30k Indians, tell each of them to understand one line of code.
More comments...