<i>Admittedly, we do some stuff that is questionable, like storing images and libraries</i><p>Not questionable at all. We do the same thing, all the way down to storing tarballs of software-packages a project depends on - it <i>is</i> the right way. The blame is on git here for not supporting it better. I.e. it should be much easier to selectively truncate history or even define an object-level attribute like "Only keep the last 3 versions of this".<p>Regardless we're getting along with git quite well, despite .git sizes in the gigabytes for some projects.<p>Our main complaints about git are access control and sub-projects at this point.<p>Subprojects ("submodules") in git are a royal pain in the ass. I consider them broken-by-design. A simple equivalent to svn-externals would work so much better...<p>This, combined with the complete lack of directory based access control, makes it rather cumbersome to work with "partially trusted" third parties in a commercial setting. We don't want to open our entire repository to some temporary contractor. Neither have we found the hassle of git submodules worthwhile for this purpose.<p>That's why we're still using SVN in this area, although I'd much prefer if we didn't have to.