Why I'm not using Git LFS

I’ve been doing a lot of reading on Git LFS, and after weighing up the pros and cons, I’ve decided not to use it. I thought I’d share my thinking behind my decision, as it makes a good discussion point… especially as there’s no right or wrong answer!

Realistically, I’m the only person that will be working on this project

This means that the repository isn’t going to be cloned very often (if at all), so the overhead from the repository size isn’t really an issue. If it was a repository that was shared between different people often, then LFS would be very handy, but for me, the only time I would need to clone the project is if I’d had a hard drive failure, at which point I’d just be happy I could retrieve my project!

The 1Gb limit on Git LFS could be too restrictive

The map in our project is ~20Mb, and it seems to get altered a lot. I also make many more commits than Sam does because I like my commits to be discreet changes that alter just one thing rather than rolling many changes into a single commit. As a result, my map gets altered frequently, and it isn’t unreasonable to suppose there will 50 different versions of my map throughout the project’s lifetime… that’s the entire allocation of Git LFS for one file. I did some quick searching on the forums, and it seems that other students have encountered this issue. I’m sure that you can revert back to using normal storage, but then there is little reason to have used LFS in the first place, and I don’t want to end up spending lots of money to host many different versions of my map that I will probably never use again.

I don’t like the way the folder structure is setup

Splitting the content into Static and Dynamic folders seems a little clumsy to me. As the project grows, I can see it getting increasingly frustrating having two different locations for the same thing. In addition, it may be hard to determine at creation whether an asset should be in the Dynamic or the Static folder, as you won’t necessarily know how often you’re going to edit it, or how big it’s going to get. You can always change it at a later date, but this involves more housekeeping that requires constant attention. If I were going this route, I think that I would probably set up a Dynamic and Static folder in every folder containing assets, and move the assets into their respective places. This at least alleviates the gap between files’ potential locations somewhat. You could also dive into the .gitattributes file and specify the individual files that you want to utilise LFs with, but this adds another level of housekeeping for a tidier file structure.

As with many things in life, there just isn’t a best way to handle our binary assets, especially when we’re using large files that change often. It seems to me that Git LFS is a lot more useful for large binary files that change extremely infrequently; things such as high resolution images for menu backgrounds in games, or music and sound files. It’s not really a panacea for “Large File” hosting in general.

Again, this is just my take on Git LFS, and in my limited knowledge, why I don’t think it’s the right solution (for me), for this project. I’d love to hear other people’s thoughts on this though!

3 Likes

So what do You use then ?
How do You keep version controll of binary files ?

Well, normal git.

Privacy & Terms