Via Leslie, check out the Unison File Synchronizer:
Unison is a file-synchronization tool for Unix and Windows. (It also works on OSX to some extent, but it does not yet deal with 'resource forks' correctly; more information on OSX usage can be found on the unison-users mailing list archives.) It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.
Unison shares a number of features with tools such as configuration management packages (CVS, PRCS, etc.), distributed filesystems (Coda, etc.), uni-directional mirroring utilities (rsync, etc.), and other synchronizers (Intellisync, Reconcile, etc). However, there are several points where it differs:
Unison works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an rsh or an encrypted ssh connection. It is careful with network bandwidth, and runs well over slow links such as PPP connections. Transfers of small updates to large files are optimized using a compression protocol similar to rsync.
Unison is free; full source code is available under the GNU Public License.
I hate not blogging this type of stuff, because inevitably a week later I wind up wanting it and not being able to remember where I saw it. Plus, even now I think I'll have a use for this. It seems like I can use this as a distributed revision control system (only without revision history) without needing CVS. It seems perfect for something I'm going to need to do very soon.
Feel free to post a comment below. Please see my comment policy.
Formatting Rules (No HTML):