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:

    It is the will of God that we must have critics, and missionaries, and Congressmen, and humorists, and we must bear the burden. Meantime, I seem to have been drifting into criticism myself. But that is nothing. At the worst, criticism is nothing more than a crime, and I am not unused to that.
    Mark Twain [Samuel Langhorne Clemens] (1835–1910)

    ... criticism ... makes very little dent upon me, unless I think there is some real justification and something should be done.
    Eleanor Roosevelt (1884–1962)

    The visual is sorely undervalued in modern scholarship. Art history has attained only a fraction of the conceptual sophistication of literary criticism.... Drunk with self-love, criticism has hugely overestimated the centrality of language to western culture. It has failed to see the electrifying sign language of images.
    Camille Paglia (b. 1947)