Version control is a method of working on projects that ensures there is always a previous version to return to if the current version becomes damaged or inoperable. Some forms of version control are also set up to allow multiple editors to work on a set of files at once. Although most of the time this is done through checking out files and checking files back in after changes are made. Truth be told, version control mostly is used in IT projects but is not exclusive to the industry and can be repurposed for other sorts of electronic or computer related projects.
Is version control the same as backing up?
No, backing up is in general a process of duplicating data for secure archiving off site. Whereas version control is for allowing multiple users to work on a project at once and/or archiving previous edits and revisions made to a project. With backing up there also may be points where an old backup is deleted to store a new back up whereas version control stores all the changes that have been made.
How does it work?
For the purposes of simplicity, I'll use Git in this example because Git is very widespread and a well-known version control application. The way Git works is that you have a timeline of changes with the end being the current working version.
This timeline is referred to as a Respiratory. To allow multiple people to work on a project a file can be checked out. Once the file is checked out it can then be worked on by one person and then the changes made can be pushed back to the Respiratory creating a new node on the timeline (committing a change). The Respiratory is stored in a different location from the files team members work on.
While a file is checked out it can only be edited by other team members. If a different person made changes to a file while it was checked out they first need to wait for the file to be checked back in. Then check out the new version, make the changes they need to make and then check the file back in. This feature ensures that no files can be overridden by an older version.
The source of all nodes on the timeline can be viewed in order to see previous versions as well. Changes between two nodes can also be viewed on a file by file basis.
If the project reaches a point where a file is damaged, not working or corrupted a replacement file can be rolled back from a previous node.
If you want to learn more about Git you might like to go to their website http://git-scm.com/about.
Is version control the same as distributing/copying files?
Because version control is used so often on projects where all the content is being created in house this question has not exactly come up in discussion.
Unfortunately, it is one I'm in the middle of answering myself so let's consider my situation as a case study:
At the moment I'm working on typing up songs into OpenLp for church. The database and song export files Open LP has are being managed by Git. This is necessary because the computer that runs the projector is not accessible during the week and I need to work from several different locations. So to get around this I work on my own machine to add and edit songs. When I have added or made changes to songs I then commit them back to Git. When I have an opportunity to access the presentation machine I can then pull the files down from Git on to the computer and everything is ready to go.
As I understand it my church needs to have all the correct licenses in order to do this. The licenses I need should state the church can:
a) Copy the songs into a presentation format
b) Make digital copies
c) Make copies for use in church events (i.e. Sunday services)
The owners still have the copyright to the content, so I still need to abide by the copyright laws. Most churches and Christian bands have such licensing options for worship purposes. For example Hillsong goes through CCLI for licensing and older songs (i.e. those first published 50 years ago) may have had their copyright lapse and become part of the public domain.
If I wanted to use the songs on a second church campus then the second church would need to get the same licences as the first one. This may or may not mean that the church at the second campus would need to purchase a second licence; this would depend on the licence conditions the song is licenced under.
So now the short to; is version control the same as distributing/copying files? Answer is yes, it is and you need to be aware of the licences of the content you don't own when dealing with version control.
If churches all went open source under an open source license there would be so much less red tape.
Can my church take advantage of version control?
Yes it can. You just need a suitable project. Projects that are mostly text based like books, document writing, manuals, templating languages (i.e. HTML) and programming, work better because services like Git aren't designed to handle large files like digital video, music, images, 3D models or DAW files. That is not to say that you can't use version control for larger files it just means that the version control application will be slowed down when checking out files and checking them back in. The source of text based files will also be visible in each node on the timeline where as with other types of files won't unless the version control application specifically supports viewing that type of file.
So get creative and try version control out on a project you might just like it.
Push: push is similar to uploading a file. It's the step you do before checking a file back in.
Pull: could be considered similar to downloading a file. It is normally done after checking out a file.
Checking out/checking in: is when you lock a file out so that you are the only one able to edit it. When you have finished making changes you can then check a file back in so that others can make changes to it. Note that while a file is checked out others can still make pull requests to view the file but can push changes.
Rolling back a file: is when a more recent version of a file is changed to an older file.
Zach Radloff lives on the Gold Coast and is studying IT and Multimedia at university and is also a qualified Live Production, Theatre and Events Technician.
Zach Radloff's previous articles may be viewed atwww.pressserviceinternational.org/zach-radloff.html