I have reached a bit of a problem syncing files between my desktop and my laptop. One of my goals is to have a single repository of all my files that syncs to my laptop and I can quickly access via a web interface. I want to be able to securely sync just the files that I need (because who really needs to walk around with ALL their mp3’s). This way I can back up my laptop to my desktop and then backup my desktop to Amazon’s S3 and have a large redundancy in my backup.

SVN and CVS are out because I need to manually add/remove files from the repository and there is a space overhead associated with them.

I know one solution is to use Windows Offline files. However, without creating a VPN I can’t sync the files from school or work. I also don’t know how this works on large (30+ GB) sets of files and it seems like there would be a significant performance hit with a large set of files (if I understand how offline files works). I also know that it takes a really long time to run just on the 1 GB or so of data that my work computer syncs even over a 100 MB connection. It’s also a Windows only solution and that is going to cause problems when I try to switch my laptop over to Linux.

I have been looking at some other solutions including rsync and a program called unison. These both allow me to make a secure connection (via ssh) to my home computer and synchronize just the changed portions of my files. My desktop is already set up to allow ssh access to it (I can’t tell you how useful that is) so this one requirement is met. The major issue rsync had when I was looking at it was it only support one direction syncing so I would have to run it twice for each directory that I was syncing. Unison appears to do both directions at once so I can quickly check for changes. Unfortunately, I’ve never heard of unison and I’m a little afraid it might be unstable or unreliable. I’m going to do some experimenting with unison and see how it works out. Has anyone had any experience with Unison one way or another?