Version Control is a process of keeping track of the state of a project at specific points in time. The traditional use of this technology is in software development, where many small changes can interact in complex ways, and it is important to know when and what changes were made that might have caused errors. I have been using version control for my work since the first time as a graduate student that I broke one of my numerical codes as I was adding a feature and I really wanted to just go back to the way it was before I broke it, but instead I had to spend two days discovering exactly what I had done and undoing it. I've been using Subversion for five years now and I have been quite happy with it. With the emergence of Distributed Version Control Systems, I saw an opportunity to change my version control software and gain features that I had long desired.