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:
“Parents sometimes feel that if they dont criticize their child, their child will never learn. Criticism doesnt make people want to change; it makes them defensive.”
—Laurence Steinberg (20th century)
“Nothing would improve newspaper criticism so much as the knowledge that it was to be read by men too hardy to acquiesce in the authoritative statement of the reviewer.”
—Richard Holt Hutton (18261897)
“People try so hard to believe in leaders now, pitifully hard. But we no sooner get a popular reformer or politician or soldier or writer or philosophera Roosevelt, a Tolstoy, a Wood, a Shaw, a Nietzsche, than the cross-currents of criticism wash him away. My Lord, no man can stand prominence these days. Its the surest path to obscurity. People get sick of hearing the same name over and over.”
—F. Scott Fitzgerald (18961940)