When working on code for a website or piece of software it’s always important to track your changes. This is especially critical when collaborating on projects where multiple people will be updating the same code. Whether you’re working with one other developer, or contributing to an open source project with thousands, it’s crucial to keep thorough records of the work being done.
This is where a Version Control System comes in handy. A version control system acts as a growth chart for a project, allowing contributors to stay up to date with each other’s changes when adding new improvements and features.
A good example of version control in use, is the WordPress content management system. As an open source project, the code that runs the CMS is publicly available in a Subversion (SVN) code repository. SVN is the specific type of version control, currently used by WordPress, and it allows contributors to check out the most recent version of the code and check in any changes they make to a central repository. This allows for a detailed history of all the changes made to the code and who made them, along with any notes from the developer.
Without this history, it would be nearly impossible to have hundreds of contributors working simultaneously on the same project. And if anything were to go wrong, it also allows project managers to more easily locate bugs and revert the code back to a previous working version.
There are three different models of version control systems out there and each one uses slightly different methods to perform essentially the same function:
- Local Data Model: This is the simplest variations of version control, and it requires that all developers have access to the same file system.
- Client-Server Model: Using this model, developers use a single shared repository of files. It does require that all developers have access to the repository via the internet of a local network. This is the model used by Subversion (SVN).
- Distributed Model: In this model, each developer works directly with their own local repository, and changes are shared between repositories as a separate step. This is the model used by Git, an open source software used by many of the largest software development projects.
While most modern projects use a distributed model, any of these methods can get the job done if used correctly. It is important to remember, however, that no matter what version control model you chose, all contributions to the project must be made using it or it serves little purpose.
Here at Hall, we have our own internal version control system. This allows our developers to track changes and improvementsto client sites, and it allows us to audit each other’s work and improve our skills as a development team.
Popular Version Control Software