We've currently got a large repository we'd like to maintain in git. By 'large', I mean 45000 files, and 5GB in disk space. The files consist of source code as well as binaries (compilers, other tools, compiled libraries, etc.).
I'd prefer to just keep all this in a single git repository if possible. However, as you may know, git struggles with repositories this large, and operations that normally take milliseconds instead take seconds (or longer). Overall it is not a pleasant experience.
I'm aware of other options like Subversion and Perforce that might be a better fit for this, but I'd like to know what are my best options to stay with git.
I've used git-submodules, and Google's repo [0] before, and found the workflow with these to be somewhat cumbersome.
So far, I've been looking at git-annex [1], git-fat [2], and git-media [3]. I was wondering what other options I might have. Of these, git-annex seems the most mature, though it involves a significant workflow change. We aren't really distributed in the sense that git-annex handles, where the users may have a bunch of working directories all over the place (on a desktop, laptop, at home, on a USB drive) which all may have different subsets of all the files.
With git-media and git-fat, the user is designating certain file extensions to be handled specially, which may work OK for us. I'm just not sure.
I'd like to hear from anyone who has used any of these tools for development, to get a better idea of the performance as well as the ups and downs of daily usage.
Thanks!
[0] https://source.android.com/source/developing.html [1] https://git-annex.branchable.com/ [2] https://github.com/jedbrown/git-fat [3] https://github.com/alebedev/git-media