Hacker News new | ask | show | jobs
by IshKebab 2 hours ago
So the problem that LFS solves is that sometimes you have large files that you a) don't want to download by default, e.g. old binary executables, b) are big enough that you want to serve them from a more efficient source e.g. S3, or c) are large and not needed forever, so you want to be able to delete them one day.

LFS "solves" those but it does it really badly. Really really badly. I've probably forgotten all the ways, but at least:

1. It conflates the content with the storage mechanism. You can't change retrospectively how the files are stored, even though the only thing you really need to be immutable is their content.

2. It requires you to actively set up git-lfs, otherwise it silently does the wrong thing.

3. Not exactly LFS's fault but I have yet to find a forge (GitHub, Gitlab etc.) which exposes the LFS stored files in a sane way. Last time I tried it was basically impossible to delete old files, and you needed a lot of extra work to even enable LFS in the place.