Another solution: stuff everything that fits into Git repos, fetch --all from each of your different computers regularly.
For things that don't fit nicely into Git (e.g. large collections of large binary files), I use a homegrown git-like system for storing filesystem snapshots: http://github.com/TOGoS/ContentCouch
For things that don't fit nicely into Git (e.g. large collections of large binary files), I use a homegrown git-like system for storing filesystem snapshots: http://github.com/TOGoS/ContentCouch