Subversion – Source Code Control

Source Code Control (SCC), sometimes called Version Control, allows a software developer to maintain a complete history of his/her software development on a project. For projects that require significant collaboration between team members it is crucial to use a SCC system. But, even when working alone on a project it is useful to use a SCC system to maintain your the code that you develop.

There are many SCC systems that will work with text-based programming languages but we will use one called Subversion (abbreviated SVN). Subversion is an open source version control system founded in 2000 that is maintained at subversion.apache.org. It touts itself as being an enterprise-class centralized version control system for the masses. We have SVN installed on our departmental server at physics.wku.edu. This server hosts a source-code control repository that will be used by the class for all assignments and project submissions.

Typical SVN Workflow

SVN is a centralized revision control system meaning that the code repository is kept in a central location and each user checks out a copy of the code to work on. The user edits his/her working copy of the code and when can commit these changes back into the code when ready. If multiple persons are working on the same code a user may wish to update his/her working copy before editing.

Using SVN

If using a terminal you can interact with SVN directly from the command line. An easier approach is to install one of many available clients to connect to SVN. We will use one of two options:

  • SmartSVN – A java-based client that provide a GUI for interacting with your local working copy and the SVN repository. It is available for Mac, Windows, and Linux.
  • TortoiseSVN – A Windows Only client that integrates into the Windows environment.