We happily use SVN for SCM at work. Currently I’ve got our binary assets in the same SVN repository as our code. SVN supports very large files (it transmits them ‘streamily’ to keep memory usage sane), but it makes everything SLOOWWWWW. I’m ok with slow asset versioning, but slow text operations isn’t really acceptable.
Right now assets are under /trunk/release (side by side with a dozen /trunk/projects). Should we keep them in a separate repository? What other optimizations can we do? We have about a GB of assets and growing.
IMNSHO its better to keep each project in its own repository, if just for the purpose of keeping the revision numbers separate between them. If project foo hasn’t been changed in six months, but project bar is in active development, why should foo’s current revision number keep changing. The exception perhaps if the two are tightly couple (like they share a common library), but even then maybe the library should be its own project as well.
Are the binary assets ever changing at all or are they static? If they are static, maybe you don’t want them in the repositories at all (just leave a small place holder in there).