While CVS can speed up development and training by allowing multiple developers access to numerous versions of code, it is still no substitute for good planning and management.
CVS merely stores various iterations of the code in its repository and it cannot replace a proper build system.
Although it can speed up communication and streamline the development process, CVS is not a substitute for good intra-team communication and cooperation. The system can provide team leaders and managers with a better insight into the inner workings of their teams, but it is still just another tool in the developers’ collaborative arsenal.
CVS can help developers identify and track bugs in some situations, but this largely depends on the way it is used and on the way developers choose to treat bugs. It can also be used to streamline testing, but CVS is not an automated testing programme.
Alternative Version System Solutions
Since CVS has been around since the eighties, it has managed to attract a sizable following. However, there are a number of alternatives, including open source GNU licensed tools and proprietary ones.
Apache Subversion (SVN) is one of the more widespread alternatives and it was designed to address some CVS shortcomings. SVN is distributed under the Apache license, but it is still free an open source. Over the years many developers have adopted SVN over CVS thanks to its comprehensive feature set, but it still has a number of limitations.
However, both SVN and CVS are relatively dated and facing strong competition from new version system solutions.
Git differs from CVS and SVN since it is built for Unix-like systems and does not need a centralised server. However, Git may not be the best choice for individual developers and it can be more difficult to use than CVS and SVN.
Mercurial is another distributed revision tool that tries to blend the best of both worlds, as it shares a lot of features found in SVN, but it is a decentralised system. While it is easier to master than Git, Mercurial lacks some features found on other platforms.
A number of less popular or niche solutions as well, including open source and commercial clients, including TortoiseGit, GitX, Gittiapp, SmartGit and others.
CVS servers are compatible with most platforms on the market and clients for numerous operating systems, even obsolete ones, are widely available.
It should also be noted that CVS is not a true configuration management system although this term is used in some marketing pitches. Some hosts may say they offer CVS hosting, but this basically means they allow developers to store their CVS repositories.
Remote repositories can be used on a wide range of servers and hardware requirements can be described as modest in this day and age.
Needless to say, there are a number of security considerations when dealing with remote repositories, so sound security practices should always be employed.
CVS Frequently Asked Questions
What is CVS?
CVS stands for Concurrent Versions System or Concurrent Versioning System. It is an automated revision control system used by software developers. CVS is used to keep track of all changes in files used by developers, allowing them to track down changes that may have caused problems.
Is CVS regularly updated?
CVS was originally released in 1990, but development has all but ceased. The latest version was released in mid-2008. CVSNT, a CVS port for several operating systems, was in active development for a while, but as of 2010 this is no longer the case.
Is support still available?
You may find support through project’s support tracker or by using their mailing list.
What are the alternatives to CVS?
There are a number of similar systems that allow you to track changes either using standalone programs or a browser interface. OpenGrok, Git, SVN, Mercurial, TortoiseCVS, Bonsai CVS, and Cervisia are some of them.
Does it offer any security features?
It uses password authentication or Kerberos with generic security services application program interface protocol. You can also use programs such as ssh which is popular because it not only uses a secure public key authentication system, but also encrypts the data while in transit.
What are the hosting requirements for CVS?
The server software normally runs on Unix servers, however, some server versions also support various versions of Windows servers. CVS clients run on any major operating system.
Can I easily migrate my CVS server to another hosting company?
If you decide to change your hosting company, you should have no problems finding all the necessary components to set up a server. Usually, all it takes to set up a Linux-based server is OpenSSH, although other access methods can be used to access CVS repositories.
Is CVS supported by IDEs?
A lot of IDEs feature support for CVS, including Eclipse, Emacs, Komodo, NetBeans, Visual Studio, and others.
Are there any cross-platform compatibility issues?
Most people nowadays use browsers to access CVS repositories, which means they can access them from practically any system with a standard browser, regardless of platform. Cross-platform compatibility should not be a problem.
What license is CVS released under?
It is released under the GNU General Public License, so it’s free to use, distribute, and modify.
Is RCS a part of CVS?
RCS, or Revision Control System, is a separate program developed for revision management. CVS is used to track changes, while RCS is used to manage the changes in each source code file.
Does CVS keep copies of different source code files?
No, it doesn’t work that way. CVS repositories only contain the changes rather than thousands of different copies for each committed revision.
How does CVS compare to Apache Subversion?
Apache Subversion (SVN) is a widely used alternative and for the most part it is compatible with CVS. It is popular in the open source community and published under the Apache License. Unlike CVS, Apache Subversion still under active development. It also supports commits as atomic operations, which CVS does not.
What distinguishes CVS from Git?
Git is a distributed revision control system. Unlike client-server systems like CVS, every Git directory is also a repository with version tracking capabilities. Git was developed by Linus Torvalds for Linux development.
About Nermin Hajdarbegovic
Before concentrating on writing, Nermin specialized in 3D graphics
rendering for commercials, music videos, and cartoons. Now he sticks mostly to writing and editing. He lives in Bosnia.