CVS as a means of keeping track of your life

This is a habit of the alpha-geeks if ever there was one: Joey Hess keeps all of his email, config files, and all of his work files in a CVS repository. CVS is a free software tool that programmers use to keep track of, and synchronize, changes to documents. It's optimized to keep groups of people spread out over time (multiple versions) and space (multiple contributors) in synch, but Joey's had the key realization that he, on his own, is separated from himself by time (the file he edited yesterday, last month, last year) and space (his laptop, his desktop, his work computer). Keeping everything in CVS means that he can keep all of his user-environments in synch, it means that he never loses data. This is the kind of thing that Passport is meant to solve, and the sort of thing that LifeLog was supposed to do, but Joey's solution has the signal advantage of using free software with a robust developer community that is completely, 100 percent under his control.

It only took a few more weeks before the advantage of having a history of everything I'd done began to show up. It wasn't a real surprise because having a history of past versions of a project is one of the reasons to use CVS in the first place, but it's very cool to have it suddenly apply to every file you own. When I broke my .zshrc or .procmailrc, I could roll back to the previous day's or look back and see when I made the change and why. It's very handy to be able to run cvs diff on your kernel config file and see how make xconfig changed it. It's great to be able to recover files you deleted or delete files because they're not relevant and still know you've not really lost them. For those amateur historians among us, it's very cool to be able to check out one's system as it looked one full year ago and poke around and discover how everything has evolved over time…

I'm told that the best backups are done without effort–so you actually do them–and are widely scattered among many machines and a lot of area so that a local disaster doesn't knock them out. They are tested on a regular basis to make sure the backup works. I was doing all of these things as a mere side effect of keeping it all in CVS. Then I sobered up and remembered that a dead CVS repository would be a really, really bad thing and kept those wimpy backups to CD going. But the automatic distributed backups are what keep me sleeping quietly at night. Later, when I left that job, the last thing I did on my work desktop machine was: cvs commit ; sudo rm -rf /. And I didn't worry a bit; my life was still there, secure in CVS.

Link

(via Smartpatrol)