Version Everything

Published on Sunday, 15 April 2012 21:37

I have long since stopped confining any of my created files to one harddrive.

Most of my work is kept in my personal SVN repository. This includes the obvious, such as my papers and my code, but also things like my CV, slides and handouts for my presentations and any letters I may write. However, some things are more conveniently stored with something like Google Docs, which I use for my financial administration, quick notes and any files I want to keep that do not belong in a traditional version control system. The upside is that those files are easier to access and edit from any computer. They can also be used to collaborate in real time. Note that Google Docs is also versioned, just less meticulously.

I found a hosting provider (pcextreme) which offers unlimited personal SVN repositories with its dynamic hosting packages. A fantastic feature, which enables me to create a new repository on a whim for any of my projects, large or small, without having to maintain my own server. They do not allow anonymous access, but you can give specific people access for collaboration purposes. This website is also hosted there. In combination with custom SVN hook scripts, that allows me to do some cool things. For example, whenever I commit a new version of my CV or any published paper, it is automatically updated on my website as well!

Of course, some of my work is hosted on third party SVN servers (such as the HATS repository or Google Code). Just in case those servers ever disappear, I also keep mirrors of those specific directories, including full SVN histories, on my own server.

Basically, the entire history of anything digital I create is permanently backed up and accessable from anywhere. Paranoid? Maybe. Smile

I also keep a repository with LaTeX files I include in many other documents. This repository is imported in others as an svn:externals directory, so any changes I make to them are reflected everywhere. The same can be done for programming projects, but these days LaTeX is the 'programming language' I use most.