git-annex. Definitely worth a look or two. In principle, it's something like a manually operated Dropbox - you can link folders with other folders and define sync relationships. But you can also define redundancies, ensuring that there are enough copies of files - if you delete a file, you get a warning if it was the last copy (and it is restored). Many commands for efficient management of various scenarios are added, and there are various backends for the data - for example, you can integrate Amazon S3 and include it as a backup repository with suitable means, or reference URLs from the web and make files always reconstructable (with this you can also integrate your own file server with an http interface). Or even use something like Google Mail as a backend and store your data in file attachments. Or use all the means of git to exclude temporary results of synchronizations, for example. Unlike Sparkleshare - which is also based on git - only the metadata is versioned in git here, not the files themselves. This of course has the disadvantage that file changes cannot be undone via it - for this you would need a versioning backend such as bup, which is then used as a data backup with versioning and definition of backup cycles. The advantage of the git-annex method, however, is that the data does not grow as gigantic as with Sparkleshare if you want to sync large files such as videos or digital images - only at the defined backup interface would the versions occur and you can explicitly determine which data goes there. Not for mouse pushers, but great for command line fetishists.
synchronisation
SparkleShare - Sharing work made easy. Badly blogged, but this looks quite promising at first glance - a simple Git server is used. Unfortunately, it seems to be based only on SSH Git, not HTTPS, at least I don't see anything about it in the docs - HTTPS would be more universal (even if passwords would then have to be stored). What is still missing is an iOS or Android client (Android is apparently in the works), but OSX is already supported. It seems that the most activity in the open-source alternatives to Dropbox is happening here - but I'm still wondering how the server behaves with massive file additions and deletions - for example, I have the current raw photos of the last few months in my Dropbox. A "raw" Git repository grows very quickly to unimaginable sizes ... (and you probably also have to do regular packs so that changes to DNG files don't blow up the repository). One small detail on the side is still important: SparkleShare uses a public IRC server for synchronization messages - so even with self-hosting, all clients are on this server and exchange their triggers via it. Should be kept in mind, because this would be a classic attack vector (and if the IRC server fails, the self-hosted system also hangs). SparkleShare is open source, so you can certainly also plug in your own IRC server here and simply use your own packages.