Concurrent Versions System - Criticism

Criticism

The neutrality of this section is disputed. Please do not remove this message until the dispute is resolved.

Several characteristics of CVS have been frequently criticized. Defenders argue that many of these are the result of deliberate design decisions, some of which were made at a time when the software and hardware landscape were different than they are now. They also point to the existence of workarounds or approaches to the development process that can mitigate problems.

Criticism Response
Revisions created by a commit are per file, rather than spanning the collection of files that make up the project or spanning the entire repository. When a release is made, a tag can be created to associate the set of revisions with a meaningful release name.
CVS does not version the moving or renaming of files and directories. In 1984, when CVS originated, refactoring was less common in development processes; the first known paper to discuss refactoring was written in 1992. Hence, there was less of a requirement for moving and renaming files and directories. However, moving and renaming can still be accomplished with the help of a knowledgeable administrator by directly moving the RCS file in the repository.
No versioning of symbolic links. Symbolic links stored in a version control system can pose a security risk. For instance, a symbolic link to a sensitive file can be stored in the repository, making the sensitive file accessible even when it is not checked in. In place of symbolic links, scripts that require certain privileges and conscious intervention to execute may be checked into CVS.
Support for Unicode and non-ASCII filenames is limited. Use of native non-ASCII character sets was traditionally avoided due to the problems caused when multiple encodings were used. Now many Unix systems run in UTF-8, and CVS on such systems handles UTF-8 filenames natively.
Commits are not atomic. Some networks and servers have insufficient resilience to complete a commit without crashing; this was even more common in the past. The lack of atomicity is mitigated by the fact that in many code management processes, development work is performed on branches and then merged into the trunk after code review. That final merge is atomic, and performed in the data center by QA. The term atomic is sometimes used in the transactional database sense, where a commit automatically rolls back if it fails for any reason, and sometimes in the sense that each commit can be uniquely identified. Tracking each commit can be accomplished by modifying the correct trigger.
Branch operations are expensive. CVS assumes that the majority of work takes place on the trunk, and that branches should generally be short-lived or historical. When used as designed, branches are easily managed and branch operations are efficient and fast.
CVS treats files as text by default. Text files are expected to be the primary file type stored in the CVS repository. However, binary files are also supported, and files with a particular file extension can automatically be recognized as being binary.
No support for distributed revision control or unpublished changes. CVS developers favored an approach in which programmers frequently committed changes to the centrally checked-in copies of files in order to aid merging and foster rapid distribution of changes to all users.

Read more about this topic:  Concurrent Versions System

Famous quotes containing the word criticism:

    I am opposed to writing about the private lives of living authors and psychoanalyzing them while they are alive. Criticism is getting all mixed up with a combination of the Junior F.B.I.- men, discards from Freud and Jung and a sort of Columnist peep- hole and missing laundry list school.... Every young English professor sees gold in them dirty sheets now. Imagine what they can do with the soiled sheets of four legal beds by the same writer and you can see why their tongues are slavering.
    Ernest Hemingway (1899–1961)

    I hold with the old-fashioned criticism that Browning is not really a poet, that he has all the gifts but the one needful and the pearls without the string; rather one should say raw nuggets and rough diamonds.
    Gerard Manley Hopkins (1844–1889)

    A bad short story or novel or poem leaves one comparatively calm because it does not exist, unless it gets a fake prestige through being mistaken for good work. It is essentially negative, it is something that has not come through. But over bad criticism one has a sense of real calamity.
    Rebecca West (1892–1983)