A few days ago Julia Evans posted this:

has anyone made a read-only FUSE filesystem for a git repository where every commit is a folder and the folder contains all the files in that commit?

the idea is that you could just run cd COMMIT_ID and poke around instead of checking out the commit

and maybe the branches could be symbolic links to the commit folders?

And I did in fact do something very like that, back when I was playing with FUSE! But I never put it up anywhere cause it had an annoying build process, and didn’t seem to add much, and—

Shallow Git Repositories

When I was getting the code in the previous post ready to share, I ran into a problem: my checkouts of LLVM and Swift were shallow clones, i.e. git repositories that don’t store the full history of each branch. Working with those locally is surprisingly easy; trying to set them up on a server using git push is a bit trickier. While trying to figure out what was going on, I was dismayed by the lack of up-to-date documentation about shallow repositories, even on my usual go-to site, So here’s a collection of information I’ve gathered about shallow repositories.

Flexible Identities in git