I first got into syncing when I bought my now-departed Thinkpad. I looked at unison but didn't like the way it seemed to dump large amounts of configuration stuff in my home directory. So I wrote scripts using rsync - one set to sync stuff from the pc to the laptop, and one set to sync the other way.
When I got my EeePC then my Advent (MSI Wind clone) netbook I simply edited my sync scripts (and
/etc/hosts) and carried on as usual. Then I discovered grsync which is a graphical front-end to rsync.
Rather than having a script for each directory branch, I just fill in the source and targets, then select which options I want, e.g. which perms to preserve, whether to compress the data (useful when syncing while away from home), whether to delete files that are missing on the target, etc. So instead of a set of scripts, I just have one config file in ~/.grsync which is, of course, pure text and can be hand-edited if necessary.
What's even better about grsync is that between the source and target directory fields is a double-headed arrow; click this and the source becomes the target and vice versa. So I sync to the netbook, do stuff while I'm out of the house, then click the double-headed arrow and sync back to the pc. Couldn't be simpler.
Grsync also has fields for commands to be executed before and after rsync is called, so you can copy, move, zip, write logfiles, etc, etc. It also has a field in which you can enter additional options to rsync, so you could, for example, enter --exclude '*~' if you wanted rsync to ignore certain backup files.
I suppose I should add the usual disclaimer that I'm no relation to the author or his dog. You can find grsync here: http://www.opbyte.it/grsync/