Thursday, January 27, 2011

The Power of Subversion

Our current classroom challenge is to install and experiment with subversion.  For those readers who are not already familiar with subversion, it is a Source Code Management System (SCM).  More simply put, subversion is one of many software tools to help you manage different versions of a file or directory through its changes.  For the Mac users out there, you may have heard of a computer back-up program called Time Machine.  I haven't personally investigated Time Machine, but if you've heard the sales pitch, it is a very similar concept.  Using an SCM can allow you, and anyone else with access, to make changes, track changes, revert to previous versions, etc.  It even allows two people to be updating a file or directory at the same time!  As a student who has done my share of group projects, I wish I'd learned about subversion back in high school!

Last semester in my software engineering class I was briefly exposed to subversion through the open source project we worked with.  However, checking out files from the repository was the limit of my experience.  This semester we are going to be using subversion within our group projects to share and manage our own progress and files as we take on another FOSS project.

My experimentation so far had a bit of a rough beginning.  I downloaded and installed subversion on my Windows machine, I couldn't quite get it to work.  The command terminal would open for a second and then close.  Since I also have Ubuntu installed on my machine and I knew I had installed subversion on that system before, I rebooted and entered the world of Linux.  Once I made it that far, things got much simpler. 

Ubuntu already contains the code for subversion, so in order to install it, you simply open a command terminal and issue the install command.  In my case the command is "sudo apt-get install subversion."  I knew I had previously installed subversion because I had used it for a class last semester, as mentioned above.  However, near the end of the semester I had some problems with an Ubuntu update and had to uninstall and reinstall the OS, so I re-issued the command to make sure I did have subversion and then I was able to proceed.

Using the class textbook and another guide on subversion (provided by the professor) I was able to check out files, modify them, add to the repository, update my own copy, and so much more.  If I had more time at the moment I would go back through the reading and try out as many commands as I could!

I am very excited about this tool and am eager to become more familiar with it.  I know that there are many other SCMs available, but I think that being able to say confidently that I have experience with subversion, and thus with the concepts of SCMs, will be a great asset when I begin looking for work.  This is especially relevant to me because I am hoping to find some work which allows me to telecommute, since shortly after graduation I will also become a mother!  Since SCMs allow workers to update and collaborate without being in the same room or same building, I can see that this will be a necessary skill to work from a distance.

No comments:

Post a Comment