The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.
Subversion's Features
Most current CVS features.
Subversion is meant to be a better CVS, so it has most of CVS's features. GeneRally, Subversion's interface to a particular feature is Similar to CVS's, except where there's a compelling reason to do otherwise.
Directories, renames, and file meta-data are versioned.
Lack of these features is one of the most common complaints against CVS. Subversion versions not only file contents and file existence, but also directories, copies, and renames. It also allows arbitrary metadata ("properties") to be versioned along with any file or directory, and provides a mechanism for versioning the `execute' permission flag on files.
Commits are truly atomic.
No part of a commit takes effect until the entire commit has succeeded. Revision numbers are per-commit, not per-file; log messages are attached to the revision, not stored redundantly as in CVS.
new:
* Improved handling of authentication data
* Repository root relative URLs
* Improvements to svn:externals
* Detection of tree conflicts
* Filesystem storage improvements
* ctypes Python Bindings
* Improved interactive conflict resolution
* Sparse directory exclusion
* Logging support for svnserve
* New public HTTP URI syntax for examining history
* Command-line client improvements
* API changes, improvements, and much language bindings work
* More than 65 new bug fixes, enhancemen