4 ms·
> The integration with Git is also very clunky since it's based on smudge/clean filters (that were really meant to update templates in your text files or change
by unshavedyak 4y ago
> The integration with Git is also very clunky since it's based on smudge/clean filters (that were really meant to update templates in your text files or change line endings, not download big files).
There is no better integration though, right? I'm implementing an alternate for Git LFS because i also don't like it - but my past research led me no where. Git just doesn't have good support for this and all we can to is smudge or batch smudge.
iirc there's some nuance/difference to how Git Annex achieves this problem space, but fundamentally i think everyone basically does the same thing. No?
If there's a better way i'd love to know, since i'm literally replacing/reimplementing Git LFS for my own pipeline.
- remram 4y ago> There is no better integration though, right? Yeah this is not specifically a critique of LFS, it's a critique of the whole thing. Some of those problems are definitely limitations of Git. I'm not trying to point fingers, but the result is bad.
- unshavedyak 4y agoConcretely, how does Smudge not solve the problem okay? I dislike Smudge in that it felt like an abuse of an API. BUT, i'm not aware of any real problems with it.. but i could easily be missing something. So i'd love opinions on the subject :)
- remram 4y agoIntegration is poor. Some tooling is not aware of it and will diff or show the pointer file instead, such as Git hosting platforms. It is also easy to end in situation where the pointer file hasn't been smudged, and Git might not report a change and might make it hard to find what is and isn't smudged... at least that has been my experience when dealing with large repositories where I sometimes want to only pull large files in specific folders.
- throwaway290 4y agoI think either you get super integrated but restricted ecosystem (eg. you can use darke files but then darke files is all you can use) or you build on top of an established protocol and get something maximally compatible (any git server) but some software will ignore the extra bits.