Subversion (SVN) is a versioning and revision control system under Apache license.
Its purpose is to maintain current and old versions of files such as your coding files, web pages and other documentation. It preserves modifications to files in a chronological manner with version tracking facility. It allows a user to revert files to a previous version. You can merge your updated documents from one file to another file. You can check for alterations among file revisions and also see details log about how files have evolved.
You can add your old files and folders to current SVN version. SVN provides the ‘Checkout’ command to check the working copy of your repository. It will create a new directory in your current directory with same ‘Repo’ name.
Any developer can manage SVN with simple commands. You can merge or update files with locally modified code. It will also show places where there is a document conflict. If you want to revert back any update then you can easily go back to previous file version with the ‘Revert’ command.
After completing your work in any file, you can commit your updates with a proper message so it will help tracking in the future. You can track all file related information such as modified files, deleted files and recent files.
You can get any command line help with “Help” command. You can get lists of updates in files by ‘Annotate’ command. It will give all changes with numbers in each line. You can set log messages for your updates so in future you can track easily.
SVN allows only sub tree structures and GIT provides the entire repository. Modular code wise you can compare SVN to GIT sub modules. By SVN you can track empty directory but in GIT you can track file content, not a directory.
SVN is better in case of central repository in which you may want to have distributed ‘repo’ for better speed and multiple copies. SVN manages one repository and if user knows the URL then the user can manage all files and materials from that location. In case of GIT, not all files are stored in same location.
With help of SVN, you can track and / or download a subdirectory of repository but in case of GIT, you have to download complete repository which means if you have low internet connection then it will take a very long time. For large projects, SVN is better than GIT for the same. SVN supports transaction by the principle “All or Nothing” so it is better when compared to CVS.
Overall SVN is best tools for large project with multiple resources involved in your project.