There is no good solution for it in Unity Free.
Best thing you could do is, using SVN with authz. Add 3 users, mabe yourself rw for the whole trunk tree, make your other two mates read only.
Then give them rw access to certain folders. It’s the best if you organize your folders correctly, i.e.
Prefabs
- PC
- Environment
Scripts
- Game
- AI
Sounds
- Music
- Sfx
Textures
- GUI
- NPC
- PC
…
and then give your other mates only write access to Textures, Scripts and Sounds and NEVER allow them to write in “Library” or the other folders containing scenes or prefabs! This won’t work with free. Never.
This kind of limits what they can do, but it’s enough for most sound artists and texture artists to do so. When new Prefabs are added or changed, they will have to communicate it with you, you’ll update it and they can do an SVN update.
One of the reasons why it not works is because of the “Library” folder. Unity saves many meta-data there. For example every textures, prefab or sound file gets a unique number (similar to an GUID). And it seems that all the GUID stuff etc. is saved in the “AssetVersioning.db” database. Now imagine follow situation:
Your friend adds a new prefab, or texture. He assigns it to a prefab and commits. At the same time you did add another prefab yourself. Now you both have a “AssetVersioning.db” which is almost identical, but both a new prefab.
Now if he commits, then you commit, you will delete his newly added asset and all Objects where his asset was used will have a “(Missing Script/Audio/Texture)” etc. That’s the “best situation”.
In worst case you break your project completely and everything gets gray/purple or even crashes on start.
This above is your only way with low risk of breaking something. You should be using the new SVN 1.7, because it doesn’t create 1000’s of .svn folders, but only one in it’s root.
This way your other mates will at least be able to update textures, Sounds and Scripts. Everything else needs to be managed by a single person (i.e. either sending your the settings of a certain prefab, or trying to export to a *.unitypackage file and send/import this one).