Versioning Your Personal Environment

I’m a huge fan of source control systems when doing development. My motto is that you should be able to get up and running with something just by downloading it from your source control. Zero Friction Environment.

However, I’ve recently started to use source control for non-development files. The top of this list is my home directory on the mac. No, not everything. Just the plain text files that you can spend years crafting, only to forget about them on the next OS install. I’ve started to keep track of all of my . files as well as my ~/bin directory.

Besides filling in as a suitable backup for these files, it also makes working with two machines a little more bearable. I have a laptop and desktop that I regularly work on. By versioning my home dir, I can now jump back and forth more easily.

BTW, I didn’t come up with this concept. A cursory search of BitBucket will bring back hundreds of users doing the same.