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:
“Cubism had been an analysis of the object and an attempt to put it before us in its totality; both as analysis and as synthesis, it was a criticism of appearance. Surrealism transmuted the object, and suddenly a canvas became an apparition: a new figuration, a real transfiguration.”
—Octavio Paz (b. 1914)
“A tailor can adapt to any medium, be it poetry, be it criticism. As a poet, he can mend, and with the scissors of criticism he can divide.”
—Franz Grillparzer (17911872)
“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 (18921983)