2.3. SummaryMeant to be a replacement for the aging CVS, Subversion is a major step forward for open source version control systems. In general, Subversion improves upon the many annoyances of CVS, and does things in a more flexible and powerful way. Some of Subversion's improved features include its handling of branches and tags via a file copy paradigm, its improved merge conflict resolution, its pluggable repository database architecture, and its use of HTTP/WebDAV for network communications. Additionally, Subversion provides new features not found in CVS, such as properties that can be attached to versioned files, and powerful hook scripts that can be run in response to a variety of actions. Although Subversion does have its limits, such as a lack of locking, poor merge history storage, and no distributed repository, they are well outpaced by Subversion's strengths in most project situations, and are almost universally issues that are also present to one degree or another in CVS. Some of Subversion's shortcomings are handled better by other open source version control systems, such as Arch, but feature-for-feature Subversion is on par with any other open source system available. Many of the features missing in SVN can also be gained through the use of external tools that are available (or currently in development). In the next chapter, I will go into detail about installation and setup of Subversion on a variety of operating systems. |