The main reason we covered RCS in the previous section was to set the stage for our next trip down memory lane. As useful as RCS was and continues to be, it has some shortcomings that prevent it from scaling up and being used for projects involving multiple developers. But, as things go in the open source community, someone needing a more advanced tool had the skill and time to create this tool. In this case, that someone was Dick Grune and the tool he created was CVS.
Initially, the Concurrent Versioning System (CVS) was not much more than a wrapper around RCS; a collection of scripts that added some features and provided a more powerful interface, but one that essentially continued to call on RCS to do the work behind the scenes. However, that architecture was replaced after a couple of years by one where all the underlying file manipulation is being done by code that is part of the CVS executable.
Among many small improvements, some of the major features CVS offered over RCS include...