Skip to content

Comment on Version control second comingparent

Comments

virtual filesystems everywhere

Please universe I beg you.

Git is incredibly mediocre. But it's all most people know. It's a version control tool that can't handle binary files; and no GitLFS does not count. The end result is a version control tool that is unable to actually version control all the things you need for a project.

This results in a Meta VCS layer where a ton of critical assets are stored in Docker files and other misery. If you want to re-compile a project for 2015 then good luck and god speed.

Personally I think full toolchains belong in source control. And that you should be able to clone / materialize a repro, yank your network cable, and build. This is how big tech monorepos work. It is TheWay imho.

IMO screw that. It's maybe a good way to build software in exactly one environment for exactly one environment, deployment to a corporate server fleet.

Consider a Linux desktop distro: if every little binary (out of order of magnitude 1000) acted like the center of the universe with gigabytes of build environment and "opinions" galore instead of portability, builds would take much more resources than they already do and parts wouldn't necessarily work together.

Deduping files is easy.

It's also useless if every tool lives in its own copy of the universe - there'd be little to no identical files.

It also won't work for version control databases, assuming use of a distributed VCS.

Yes it would require a global blob store across reps. That seems like a good design choice.

I don’t know what you mean by “ won't work for version control databases, assuming use of a distributed VCS.”

The .git directory does not contain plain files, so the same files may look different in different .git directories. But yeah, you could make it work if you designed for it.

Yeah Git is super mediocre. But the hypothesis is that you could build something that doesn’t suck!

Visual Studio and Xcode take up tens of gigabytes, are updated often, and include system components. Storing them in VCS is impossible, and would be a waste of disk space.

You could consider ZFS a VCS, and it can easily store multiple versions (snapshots) of Visual Studio.

It's not impossible, there just isn't that much demand for it.

Literally not impossible. And also not tens of gigabytes.

Disagree. They’re stored _somewhwre_ anyway, and they may as well be versioned.

Putting toolchains in perforce is how it works for lots of C++ shops, the setup instructions are “sync and hit build”, whether there’s a toolchain upgrade required or not

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.