I move between a couple different computers regularly: my old 12" PowerBook and the 15" MacBook Pro my job provides me with. Like all multi-computer users I periodically bump up against the challenges of what files (and versions) are where, especially when there’s work in progress.
To further complicate things, I also have an extra laptop running Ubuntu. And sometimes I just SSH to my web server from somebody else’s machine.
I spent a while thinking about solutions. Some people keep a “master” home directory on a server, using
rsync to pull new copies (or freshen old copies) on machines where they work. Being an rsync fan, I tried this approach. After my first accidental
rsync --delete casualty, though, I started thinking about ways to preserve history.
That’s when the ideal solution hit me (making a big resonant “DUH” sound): distributed version control. Perfect synchronization: check. Multi-platform clients: check. Full history: check.
I created a Mercurial repository on my web server, then cloned it out to the two laptops.
For stuff that needs to be secure, I decided that simple command-line encryption was the answer (hence this tweet from a while back with a Blowfish encrypt/decrypt one-liner). And I use SSH for transport, so even the plaintext stuff is safe from in-transit snooping.
I call the synced directory “syncbox”. It contains a little script for keeping things in sync. It amounts to these steps:
hg addremove hg commit -m "Update" hg push hg fetch
Ironically, after having set all this up, I got an invite to try Dropbox, a nifty-looking service that offers many of the same benefits and many other features besides (e.g. desktop OS integration, selective file sharing, browser-based acess option). About all I can tout for advantages of my approach are: 1) unlimited history (Dropbox gives you 30 days), 2) no additional fees if I exceed 2G of storage, and 3) I control it completely.
memo commented :
But the Dropbox tend to have faster connection speed and it’s not likely to fail that often, i guess. :-)
Rick commented :
Thanks for this. I like it.
I also had a DUH moment at roughly the same time I read the word in your post. I wrote about my implementation using Bazaar here: http://www.rickvause.com/2010/06/an-alternative-to-dropbox-using-bazaar/