I'm thinking about setting up a Subversion repository on my server as a host to my personal files. Every computer I have, even my windows one, has the equivalent of "My Documents" (renamed to "files") set up the exact same way so it should be fairly easy to get at least the Linux computers synced up. I could also take advantage of branching in case one computer gets too out of sync I can just commit all local modifications directly to a branch and continue tracking changes across computers if necessary.
The main downside is the time it would take for SVN to parse all that data each time I do a commit or update to determine what has actually changed in all the files, especially the larger ones (pictures). When it comes to the pictures I'd also be concerned with having to check out several gigs worth of pictures between each computer, so if I did this I would probably want to do a local rsync between each computer before doing the final update to the server on each computer, at least for the music and pictures. On the other hand I could just set it up so that those directories aren't checked out by default.