9 ms·
- A client side virtual file system (FUSE), so that you can work with large repos that exceed the size of your own system. Version control systems like Piper (
by EdSchouten 4y ago
- A client side virtual file system (FUSE), so that you can work with large repos that exceed the size of your own system.
Version control systems like Piper (Google internal) and Eden (Facebook), GitVFS (Microsoft) already do this, but adoption is marginal.
- Ericson2314 4y agoI really want a system-wide content addressable store that a lot of different things can use.
- skybrian 4y agoHaving used Piper, I think the Go package manager's approach is better, actually, at least for a collection of packages maintained by independent teams. If you're not going to commit to fixing downstream packages for other teams when you change something, it doesn't make a lot of sense to have a monorepo. Instead, let people upgrade at their own pace.
- oivey 4y agoThis is a good way to put it. I think the opposite is also true: going with many repos means you are committing to other teams being on their own to upgrade. It’s difficult to know if you’ve fixed all downstream code if everything isn’t in one repo. That model makes sense for OSS. Not so sure about within companies.
- WorldMaker 4y agoIt's also interesting to note that at this point Microsoft seems to be pivoting away from GitVFS. They've put a lot of collective engineering work in git sparse clones and git partial clones and the intersection of the two ("sparse cones") and optimizations like git commit graph pushing git itself to better at virtualizing its object store, not touching objects it doesn't need, and better handling just-in-time scenarios for object retrieval when it really does need them.