Here is my best attempt to articulate why I believe all dependencies, including compiler toolchains, belong in version control.

https://www.forrestthewoods.com/blog/dependencies-belong-in-version-control/

Dependencies Belong in Version Control

Why dependencies should be checked into version control.

@forrestthewoods FWIW the "sparse" stuff in git is I think workable these days. Here's an example: https://gist.github.com/jsimmons/65acdcab3a91217717a93f66fa848c06
putting all the llvm versions into a git repo and using sparse magic to avoid copying it all down

putting all the llvm versions into a git repo and using sparse magic to avoid copying it all down - git.txt

Gist

@dotstdy yeah with the right sparse, shallow, and maybe LFS(?) you can make it work. I’m so sad Microsoft abandoned GitVFS in favor of sparse. Not sure why.

Sparse is still inferior to VFS imho. VFS “just works” (modulo bugs). Sparse requires maintenance and can be fragile. But it can be done! FWIW at work we use to have sparse lists and VFS is soooo much better.

@forrestthewoods @dotstdy Isn't Scalar supposed to be their replacement for GitVFS:

https://github.com/microsoft/scalar

GitHub - microsoft/scalar: Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer - GitHub - microsoft/scalar: Scalar: A set of tools and extensions for Git t...

GitHub
@idbrii @dotstdy yeah. They abandoned VFS for sparse clones. Having dealt with monorepo sparse clones I think virtual is much better