Version Control
From GridInfo
Contents |
What can Version Control do for me?
Version control systems keep track of the different versions of files--especially source code files--which change and evolve during the course of a project. The benefit of this is that there is no uncertainty about which is the latest version of a file, and there is also a record of all the changes that have been made to it. Version control systems can do much, much more for you, however. They allow you to easily:
- Collaborate with other researchers.
- Package and make your code easily available to others--for the RAE, for example.
- Recover past versions of files--very useful for recovering from disasters.
- Highlight differences between two versions of a file--very useful for finding bugs.
- Keep a record of when changes were made, add notes about why they might have changed, who changed them etc...
- Develop variants (branches) of your code simultaneously.
- Work on your code from several different computers--without losing track of what the latest version is.
- Manage your project efficiently and minimise any wasted time when writing code.
Tell me more..
Version control systems allow you to create a repository of files for each project you work on. The repository will typically hold the source code and perhaps any documentation for the project. Each project member has access to this shared repository and the version control system keeps a track of any changes that are made to the files.
The repository is typically held on a remote computer. An editing cycle begins by taking a copy--a checkout or an update--of the latest versions of files in the repository. You are then free to edit your local copies of the files in whichever way you like. These edits will only become available to the other project members, however, when you commit your changes back to the repository. At which point, the latest versions of the files will be updated, so as to include your modifications.
More Information on Version Control
Wikipedia has a good introduction to the topic of version control, if you would like to find out more about the general concepts.
There are a number of Open Source version control systems. Two popular choices are the Concurrent Versions System (CVS) and Subversion.

