Just a small correction, I know this is a detail, but it can also be at the same wavelength. When you say that the download is 3 GB per version, this is not the right way to see it. The first check will be a big load. Subsequent updates to source codes or even returning versions will be approximately equal to the difference between the two versions.
Now suppose you can be low on disk or want to reduce bandwidth a bit. I was thinking about your question, and the only thing I can come up with is to use “External Definitions” to check the external repository in your own repository. This is the only way I can think of where you can cherry-pick the files you need without the help of third-party developers. But this is a lot of handmade, not so good.
Another solution is to get these tools, work a little more, but allow a little more flexibility for any project, if everything is done correctly. I see you from your profile, which seems like Java to you, there are client libraries there that allow you to get svn ls, you parse the result only to get these .c and .ccp files. But it will be very slow, since it will check the files individually. Although, as soon as you do this, you can also generate your external definitions in a file and thus have the best of both worlds. You have svn speed, flexibility in choosing cherry options and best of all .
Svn can be very flexible, but for some specialized needs you need to tickle the tool together and, fortunately, most languages have pretty decent client libraries.
Good luck :)
UPDATE
According to this post :
If you are fortunate enough to use subversion 1.6, you can have external links for directories and files
source share