What is Subversion?
Tracking your changes
Subversion is a version control system that will track all changes made to files and folders (directories). Software development is an evolving progress. Code oftenly starts in a basic form, it could be a simple form on a website. Soon the client which you made the form for, talked to his superior and they figured the form also has to support a second language. You can still hack this in, but the feature requests keep stacking. Soon more validation has to be done, the form has to check another database to see if the data is valid. Sound familiar?
Changing requirements don't have to be a problem, because you keep track of all the changes you made it's easy to keep track of the software you are building. In case you added a feature that actually breaks some features which you have implemented months ago, you can easily go back a version to make sure you are running a stable version.
Subversion is all about tracking code. Using subversion for a project you are the only developer on can be useful, but it's true potential shows when you are working on a project with atleast a handful of developers.
Every developer has it's own checkout. This is the developing environment for every developer. They all add features to the software, once the new feature has been tested, the developer commits his code. The code is now sent to the repository.
The repository tracks the changes, a version is given to this new addition. Also the developer can add a comment to his commit so other developer can easily understand the changes that are made. Now the other developers only have to update their own checkout to see all the changes made to the project.
This way of working has a few pro's above the old way of all working in the same files:
- More developers can work on the same code at the same time.
- If a computer crashes the code is still available. Everything you commit will be saved on our servers.
- It wouldn't be the first time that a nasty bug shows up after a new version was released. Now you can easily revert the latest commit and use the previous (stable) version.