← Back to context

Comment by theli0nheart

12 hours ago

I wrote git-bigstore [0] almost 10 (!) years ago to solve this problem—even before Git LFS—and as far as I know, bigstore still works perfectly.

You specify the files you want to store in your storage backend via .gitattributes, and use two separate commands to sync files. I have not touched this code in years but the general implementation should still work.

GitHub launched LFS not too long after I wrote this, so I kind of gave up on the idea thinking that no one would want to use it in lieu of GitHub's solution, but based on the comments I think there's a place for it.

It needs some love but the idea is solid. I wrote a little description on the wiki about the low-level implementation if you want to check it out. [1]

Also, all of the metadata is stored using git notes, so is completely portable and is frontend agnostic—doesn't lock you into anything (except, of course, the storage backend you use).

[0]: https://github.com/lionheart/git-bigstore

[1]: https://github.com/lionheart/git-bigstore/wiki