One of the most important pieces of software that a development group uses is a version control system. A VCS is intended to manage changes that are made to documents, images, programs and any other stored information on a company network, and a number of popular programs now exist to help programmers make the most of their version control.
It is first important to understand the flow of work that is managed by a version control system. Anytime a document or file is changed, a copy of the file before and after the modifications is saved by a VCS. Both files are given unique names, with the copy typically receiving an integer such as (1) to denote that it has been revised. This allows you to return to a previous file or “version” if needed. In addition, the system will tag the new file with information on who changed it, as well as what they changed, so that versions can be compared or details clarified. A VCS will also be able to make copies of an entire development project, which is known as a “branch”. Altogether, a good VCS will allow a company to make quick and easy changes to any aspect of their system, but still return to an earlier version if these changes do not pan out.
The oldest and most popular version control system on the market currently is the Concurrent Versions System (CVS). CVS has been around since 1986, and is often considered to be the standard which all other VCSs must meet. It is a simple, open-source system that is easy for any company to pick up and use, and while its feature set may not be as broad as other control systems, it is still under constant development.
A competitor to CVS is the Subversion (SVN) version control system. Subversion is also open-source, but has as its mandate to “take over the CVS user base”. The creators of Subversion are of the opinion that while CVS does a number of things well, there are areas where it falls short, and they believe they can improve on its overall functionality.
Both of the these VCS options can be installed on a VPS account, which can often provide a simple way to keep a VCS separate from potentially detrimental interactions with programs on a local server. A Subversion VPS or CVS VPS can be run in Linux or Windows, and an SVN VPS can be run anywhere that Apache Portable Runtime (APR) can be run. A CVS instance can support up to 1,000 developers or more, and for anything over 50, should be moved to a CVS VPS instance. Regardless of which VCS is chosen, running CVS VPS or SVN VPS in Linux is simple and straightforward, and can give the VCS the room it needs to do its job well.
Aside from the simple fact that a VM will allow a version control system to run as intended, hosting one remotely also provides the ability for multiple developers from all over the world to work on a project simultaneously. Each developer could work on the core version of a file and change it to their liking, without their changes ever interrupting the work of another user. With the ability to track the evolution of changes to a file in both SVN and CVS VPS choices, developers can see where a file has come from and where it is going. By splitting this evolution into small steps, developers can use a hosted VCS to check each incremental version of a file continuously to monitor for any problems.
While a local server or desktop can run a small instance of any popular VCS program, a Subversion VPS or CVN VPS will give a company the ability to work on a project even if its developers are half a world away, along with the certainty that the original version of the project files will remain intact.
Other version control system programs are also hitting the marketplace now, including options like Mercurial, Git, Bazaar and Libresource. None have the following of CVS or Subversion, but each have their own benefits, from a greater range of tools to a better user experience.
While a VCS is necessary at a local level, and can benefit performance-wise from being installed on a VPS, such an installation has the added advantage of giving a company greater ability to manage, monitor, and change their files in real-time, and from anywhere in the world.