I'm planning to move our repository from SVN to Git and I heard a lot about how Git is very inefficient in dealing with binary files. But I don't really understand what may be the issues (besides the repository size) I will face regarding this topic, since we do have a lot of binary files in our repository.
This is our scenario: We have a single repository of 800MB that contains 2 directories:
- src (300MB)
- libs (500MB of binary files)
This is the current size considering no history (let's assume we start the Git repo from scratch, without any history).
The binary files never exceed the 25MB, most of them are lower than 10MB, and are rarely changed (2 or 3 times a year).
Can I expect issues with a repository like this when using Git? If the only issue with Git is the fact that all the history is kept in each local repository then I don't expect it to grow so much since these files are not changed often.
But might the Git performance (when committing or checking the status) be affected by the fact that I have a lof of binary files in the repository? Could the Git Subtree feature help on this (by making the directory "libs" a Subtree of the main repository) ?
EDIT: I know I could use something like Maven to store these binaries outside however we have a restriction here that we must keep these files together.
UPDATE: I made a series of tests and I concluded that Git is smart enough to analyze the zip content and save deltas: for instance, if I add a zip file of 20MB and then I modify one text file inside the zip, when I commit the new version of the zip and run 'git gc', the size is almost unchanged (still has 20MB). So I can assume Git work fine with zip files. Can someone confirm this?