story
The syncronization between computers is done essentially how one would do it with git. Personally, I sync to a private VM host so the content is available "in the cloud".
At the moment I just sycn everything manually, but it's possible to setup git-hooks to make it automatic. git-annex is nice for power users, since it allows fine grained control of where to keep what content. The file metadata is stored in git, but you choose when and how to pull or push the actual files themselves.
That makes it possible to sync cross sections of an entire library, for example. This is how I manage what to put on my kindle and what to keep off it.