3 ms·
Git lfs is a lousy hack. I wish git had better support for large binary formats.
by geraldwhen 3y ago
Git lfs is a lousy hack. I wish git had better support for large binary formats.
- TOGoS 3y agoThe sad thing is that there's not much in Git's data model[1] that makes it bad for storing large binary blobs. An alternative implementation of Git (the program), or even a future version of vanilla `git`, could handle them just fine without the lfs hack, which I agree is horrendous, by using a different on-disk format for them and/or making sparse clones easier, and thereby remain 100% compatible with every other Git repository. [1] There are some tweaks I would make, like using a standard Merkle tree hash function instead of sha1("blob "+size+"\0"+data), and a text-based encoding for commit and tree objects, but those are bike shed paint. I created a Git-like system based on these ideas that uses URNs and RDF/XML to make going 'under the hood' with a text editor a bit more pleasant than the experience with Git is, which is important because Git's tooling is far superior: https://github.com/TOGoS/ContentCouch/ https://github.com/TOGoS/ContentCouch/
- haradion 3y agoShallow/sparse clones help with some of the pain points there, at least around time to clone and local repo size.
- geraldwhen 3y agoI’ve got Jenkins configured to heck and back. Still a hassle though, and it’s clear it’s not a full solution.