While there has been a lot of talk recently about Git, and the explosive growth it has seen over the past year among the development community has been unrivalled, it’s not always the perfect tool for the job.
As someone who has been using version control for some time, switching between different systems comes naturally and with little fuss — where are my local commits?! — however teaching those that are new to version control the best practices can be a hard task to track (no pun intended). One of the great features of version control is the history of comments that it allows you to wade through. However, making sure that new users aren’t just adding in comments like “bug fixed” or “refactored it” can be a daunting challenge while keeping on top of your own work.
Luckily, SVN has post-commit hooks allowing each individual commit to be forwarded onto a service for processing: in our case this is through an RSS feed reader. I can make sure that users are making regular commits, whilst also checking over the content of their comments. Perfect for making sure they were using the version control system as intended and helping me find issues in how I may have originally taught them how to use the system.
With version control properly installed, the next logical step to take would be deployments. There are numerous ways of handling the development and shipping of numerous types of software, but with web development it’s best to test on a server as similar to production as possible. An easy — read: lazy — solution would be to have local working copies on each server and simply “update” to the revision you’d like to implement. This is fine if everyone has SSH access to every machine, but it makes tracking deployed revisions a lot harder. In comes Springloops to save the day.
Springloops
We use numerous web apps to get things done and Springloops is yet another tool to add to our arsenal. At the time of writing they only provide SVN hosting but I know for a fact that they are hooking in numerous other version control systems in the next few weeks. Easily the most useful feature of Springloops has to be it’s deployment functionality, allowing you to send your codebase out to different levels of development, staging and production servers. Even more useful is that you can have multiple servers under these levels, allowing the same deployment to happen simultaneously — set and forget! After they’re complete you have each server labelled with what revision has been deployed, making sure even the most forgetful developer knows what revision they need to work from.
In terms of value to the client the obvious ones include:
- easier quality assurance tracking
- improved status monitoring of the project in terms of implemented features
- we can work simultaneously on big feature implementations and still allow you to jump back in ask for quick changes to be made with little fuss!
The use of version control in modern day development is not up for debate. The benefits far outweigh any drawbacks and so far developers that were taught (forced?) to use version control have never looked back. I may be biased though.