Ian Henderson

Week 2 - Collaborative Development



Click for Lecture Video

This week we heard a lecture explaining the concept of versioning, which is a method of saving digital documents by logging all of the changes that are made and time-stamping those changes, so that if you decide later that you've made a mistake or are no longer happy with the direction a project is going, you can essentially "go back in time" and restore the document to an earlier version. The more traditional way of doing this, which is something most of us already do, is to save multiple "drafts" of a document, eg "mydocument1", "mydocument2", "mydocument3", etc. Versioning is a cleaner, more robust way of achieving the same thing. With versioning, you create only one document, and each time you modify the document, your versioning software can make a log of the changes you've made so far. It will assign a date and time to those changes as well. Later, if you decide you'd like to revert back to an older version of your document, you simply pick the date and time you'd like to revert back to, and your document will be restored to the state it was in at that time.

In addition to versioning, we learned about collaborative development, which in the context of software development (or digital document creation in general), is basically a networked variation on versioning. Collaborative development software allows multiple people to work on separate copies of the same document on their own computers and then merge all their changes into one single document through a central server. As the document on the central server is updated, users may pull the changes that everyone has made and integrate them into their own document, then push their own changes up to the central server so that everyone has identical versions of the same document. Since everything is recorded as a series of change logs instead of multiple documents, it should be easy to revert to a previous version, or reject the changes that were made by one specific user at one specific time.

At Fab Academy, we're using software called Mercurial, which is all operated via command line. So to use this on my mac, I have to open up the Terminal application and type in various codes to do basic things like navigating from one folder to another. For me, it's indistinguishable from witchcraft in its mysterious incomprehensibility. The software didn't work properly during the first attempted installation, possibly because my computer is running OSX lion instead of Snow Leopard; possibly because my computer is haunted, possibly for other reasons we'll never find out. In any case, we weren't able to get it up and running on that day, but the following week Anna walked me through a series of steps where I pretty much just typed in the things she told me to type and occasionally cut and pasted lines of code from various emails and web pages. Finally we were able to get things to work and I uploaded the first iteration of my website. We'll see how it goes next week when I get to try uploading the next update by myself!