Wednesday, February 15, 2012

SVN and SVN Repository

Subversion (SVN) is a very popular open source versioning system. It manages files, directories, and changes made to files and directories over time by single of multiple users

SVN is a client-server application where the SVN repository serves the tasks of a server. It is a central storage place which stores information in the form of a file system tree. Users share data by reading and writing to the repository. The repository keeps track of all changes written to the file i.e. modifications to the files, file contents, and directory structure. Users see the latest version of the file system by default but they can view every change ever make to the contents of the repository.

A decade ago Concurrent Versioning System (CVS) was the most-widely used versioning. It is built on Revision Control System (RCS) and thus inherits its flaws and this inheritance is precisely the reason it is very difficult to fix these flaws in CVS. SVN was created to overcome the flaws of CVS. It offers all the benefits of CVS without its flaws.

Although SVN is primarily used by programmer to track their project, it is capable of managing any sort of file collection. Important features of SVN are:

  • users can store ongoing work (code, docs, data, etc.) in a central repository
  • users can access the latest versions in the central repository
  • automates the process of updating local working copy of the project with modifications made by others?
  • users can track all changes ever made and revert to previous versions

Following are some important features which make SVN a better choice over CVS.

  • Subversion versions entire trees i.e directories, renames, and file metadata
  • changes are atomic. If you commit files a.aspx and b.aspx.cs, either both will be updated or neither will be updated
  • tagging and branching are not resource intensive
  • Subversion is designed as a client/server application

No comments:

Post a Comment