Maintaining a successful version control system is an important part of an agile project: version control allows you to easily roll back to a previous revision rather than manually unpicking changes; makes it easy to share your latest changes across distributed teams, and provides you with a quick and convenient sandbox in the form of a branch. These are just some of the benefits of version control, but there are some measures you can take to get even more out of your system. In this post, we share five tips for making your version control solution agile.
1) Set some guidelines
Maintaining a version control system can be a complex task, so implementing some guidelines – and making sure your whole team sticks to them! – can save you from unnecessary admin work later on.
- Plan your layout – implementing a logical project layout from the very beginning can save you time and energy at a later date. Some version control systems, such as Apache Subversion, don’t impose a particular project structure, so it’s even more important to plan your layout in advance.
- Be consistent with your file/folder names – a logical naming convention will make it easy to locate particular items.
- Make your guidelines easily accessible – any conventions should be explained in a coding conventions file, which must be accessible to all members of your team. Consider placing these coding conventions under version control alongside the rest of your project, so they are always to hand.
2) Your code should always compile
In an agile project your code should always compile, which is where version control’s branching and merging functionality comes in handy. Any experimental development or new features should be confined to separate branches, and they should only be brought into the trunk when they’ve been tested to check they won’t break the build. This will ensure that the code in the trunk is always stable, and always compiles.
3) Place your whole project under version control
Version control isn’t just for source code management; you should place all files and folders related to your project under version control. Not only will this make it easier to locate files by keeping everything related to your project in one place, but version control’s ability to roll back to previous revisions is useless if you cannot then use that previous revision, or if you need to spend hours re-instating a list of related tools. Documentation, tools and libraries are all worth placing under version control, alongside your code.
4) Use Branches Wisely
Branches work best when they’re short lived. Being able to create a branch and customize the code to fit a particular customer’s requirements is one of the benefits of version control, but beware of maintaining this branch indefinitely alongside your main development line – multiple codebases can be costly and time-consuming to maintain.
5) Consider Enterprise Version Control Solutions
Our Subversion MultiSite solution combines open source Apache Subversion version control technology with value-added functionality designed to help teams stay agile, including:
- No single point of failure
- Automated failover
- Built-in continuous hot backup and automated recovery
- Continuous build integration
- ….and more.
Want to learn more about Subversion MultiSite? On June 6th, 2012 WANdisco will hold a free webinar looking at the findings of an independent Forrester TEI study of a Fortune 500 company that implemented Subversion MultiSite. Visit the ‘Forrester Research on Optimizing Global Distributed Software Development Using Subversion’ page now to register.