Comment by steveklabnik
11 hours ago
What is kind of funny here is that you're right locally. At the same time, the larger tech companies (Meta and Google, specifically) ended up building off of hg and not git because (at the time, especially) git cannot scale up to their use cases. So while the git CLI was super fast, and the hg CLI was slow, "performance" means more than just CLI speed.
I was never a fan of hg either, but now I can use jj, and get some of those benefits without actually using it directly.
>At the same time, the larger tech companies (Meta and Google, specifically) ended up building off of hg and not git because (at the time, especially) git cannot scale up to their use cases.
Fun story: I don't really know what Microsoft's server-side infra looked like when they migrated the OS repo to git (which, contrary to the name, contains more than just stuff related to the Windows OS), but after a few years they started to hit some object scaling limitations where the easiest solution was to just freeze the "os" repo and roll everyone over to "os2".
“roll everyone over to os2”
The IBM crowd may feel vindicated at last.
So 30 odd years later, MS went from working on OS/2 to working on OS2?
I guess what's old is new again.
I have heard that the Google monorepo is called google3 but I don't know why. Maybe those things are common...
It's the third attempt of building the mono repo.
But not the 3rd mono repo on the same technology to avoid some scaling limit.
It's not that.
1 reply →
didn't msft write an ~entire new file system specifically to scale git to the windows code base?
I have fuzzy memories on reading about it.
They wrote something that allowed them to virtualize Git -- can't remember the name of that. But it basically hydrated files on-demand when accessed in the filesystem.
The problem was I think something to do with like the number of git objects that it was scaling to causing crazy server load or something. I don't remember the technical details, but definitely something involving the scale of git objects.
I thought Microsoft made a number of improvements to git to allow it work with all of their internal repos.
Small nit: Googles monorepo is based on Perforce.
I think what happened is Google bought a license for source code and customised it.
Yes, the server is based on Perforce, called Piper, but the CLI is based on mercurial. So locally you're doing hg and then when you create a CL, it translates it into what p4 needs.
Depends on what frontend tool you use. You can use either. These days you can also use jj. I'm not sure the backend resembles peforce any longer.
Right, and I'm glad there are projects serving The Cathedral, but I live in The Bazaar so I'm glad The Bazaar won.
The efforts to sell priest robes to fruit vendors were a little silly, but I'm glad they didn't catch on because if they had caught on they no longer would have been silly.