Unity Pro has a function that enables external version control. It’s great because you don’t have to pay $500 for a Unity Asset Server license, but it’s kind of a mess because it adds a ton of .meta files, and if you don’t commit the .meta file with the regular file you’ve broken version control.
Unity Pro also has some powerful asset post processor functions that let you customize the importing pipeline. Maybe these could work together (hint).
This script uses an asset post processor function to find added/deleted/moved files and correctly apply those changes to a local Mercurial (hg) repository (including the associated .meta files).
Mercurial is a great distributed version control system that can have large binary support enabled. Mercurial.net is an awesome .net library that lets you interact with Mercurial repositories in C#. I mixed that chocolate and peanut butter with a Unity script to automate some of the grunt work of keeping a Unity repository in sync.
The script doesn’t do push/pull/commit/merge (yet), so you’ll still need to use the command line or GUI client to do that stuff. I use MacHg, SourceTree, and TortoiseHg.
I don’t know if there’s a similar .net library for git, but if there is it should be relatively easy to do the same thing for a git repot. SVN and Perforce integration might be possible too, but since those are coming in Unity 3.5 anyway, it’s probably not worth the effort.
I don’t know if I’ll have time to support this script, but hopefully it can be a useful starting place for other developers.