I use Mercurial (or Git) + TrueCrypt + Dropbox for encrypted remote backups.
The coolest thing is that Dropbox does NOT sync the entire TrueCrypt container if you modify a small portion of your code. The sync time is roughly proportional to the amount of changes. Even though it's encrypted, the combination of TrueCrypt + Dropbox makes excellent usage of block cipher + block level sync.
Secondly, a monolithic encrypted container not just adds security, it also reduces chances of repository corruption .
Caution: However you have to be very careful about not having the container mounted while Dropbox is running. It can also be a pain to resolve conflicts if 2 different clients check-in different versions to the container. So, it's practical only for a single person using it for backups, not for a team.
Setup:
- Create a Truecrypt container (multiple Gigabyte is fine)
- Under Truecrypt preferences, uncheck
preserve modification timestamp
*.
- Create a repo as mentioned above by Dan ( https://stackoverflow.com/a/1961515/781695 )
Usage:
- Quit Dropbox
- Mount the container, push your changes, unmount
- Run dropbox
P.S. Unchecking the preserve modification timestamp
tells dropbox that the file has been modified and it should be sync'd. Note that mounting the container modifies the timestamp even if you don't change any file in it. If you don't want that to happen, simply mount the volume as read-only