Subversion was originally intended to be a replacement for CVS, because CVS had to configure the server and how to configure the server at home, and found subversion. Subversion was designed to replace the most popular version control software CVS in the open source community, with many enhancements based on CVS and a better solution to some of the deficiencies of the CVS system, which mainly include the following:
1. Versioning of metadata such as catalogs, files, and name changes
Unlike CVS, which only cares about the contents of a file and whether a file exists, all files and directories are versioned, such as renaming, copying, and so on;
2. The commit operation is a real atomic operation
In Subversion, the commit operation is indivisible and the revision number is based on each commit operation rather than the file. The submit log is attached to each revision, rather than being stored as redundant as CVS;
3. Support based on WEBDAV/DELTAV protocol available via the Apache server
This feature enables Subversion to use the Apache Web server to make the repository more flexible to share on the web, making it much better at interoperability than CVS;
4. Can run independently
When you don't want to use Apache 2.x, you can also use Subversion, which can be run independently as a daemon or as a service under Windows;
5. Branch (branching) and label (Tagging) operations are lightweight;
6. Client server-side tiered library structure design;
7. The repository can be stored using a database (BERKELEYDB) or a file in a specific format;
8. More efficient processing of binary files.