What is SVN or SubVersion :- SVN is version configuration management system used in most of software projects to maintain the code at one of repository location. SVN is implmented by apache framework and the current version is Apache Subversion 1.7.2
Subversion is same as like as CVS with additional features.
When we are creating any code base in subersion, First we need to create a repository. Repository is remote network folder which has all the code base as well as project related document.
Repository is located in remote server that can be windows based or linux based systems.
Clients or developers has to install the svn clients such as standalone Tortorise SVN clients or command based clients to get the code.
Once users are installed the svn clients they can copy the code from the repository to therir local systems, code chagnes can be modified in local copy, once the changes are done, again they save their code to the repositiroy. so that multiple users have synch to the repositiorys
SVN is used mainly to sync the code base that will be changed by mulitple teams in a project.
Most of java open source projects uses SVN as tool for maintaining the code base.
Checkout is cvs jargon used to create a local copy of the code base from the repository. This can be done either from the SVN GUI clients(Totorise SVN) or command based clients
what is commit in SVN? commit is cvs jargon used to save the local copy of the code base to the repository code base, so that code in the local and repository is synch always.
What is Merge in SVN?Team A started work on code that is checkout from repository for the one project. Team b checkout the code from repositiory after Team A checkouts.
Team A finish their work for the local copy and commit their local changes to Repository.
But team b has their own local copy changes. when team B is going to commit their changes, SVN will do the merge process. It will copy the all corresponding changes in local copy to repository.
while merge is happening, it will show conflicts for all the individual files, we need to see the difference between those conflict files and do the merge process
There are two types of merge in SVN
1. Automatic Merge :- Automatic means svn resolve the conflicts automatically. No changes are required from the developer 2. Manual Merge:- SVN provides the merge manager, in that we can compare the files that have conflicts and merge as per the code base. We need to do this carefully as there is missing of code in if we have not done correctly
Advantages or benefits of Subversion:- SVN is lightweight tool. Easy to learn and setup as well as for administration. Full revision history of all the that are modified/added/delete/Renmated Easyly integrated with other build tools to achive the Continuous Integration testing.
Maintaining the different version of code base in the repository by simple commands
This topic has been a very basic start to explore on SVN tutorial Hopefull you have enough information to get started. If you have any questions, please feel free to leave a comment and I will get back to you.