What is SVN or SubVersion?
SVN is an Open-source version configuration management system used in most software projects to maintain the code at one repository location.
The apache framework implements SVN, and the current Latest version is 1.14.2
Subversion is similar to CVS with additional features.
It is mainly used to track and maintain the current and version history of a codebase.
We must first create a repository in Subversion before we can generate any codebase. The repository is a remote network folder that contains all of the project’s code and documents.
The repository is located on a remote server that can be Windows-based or Linux-based systems.
To get the source code from a remote repository, clients or developers must install svn clients such as standalone Tortoise SVN clients or command-based clients.
Once users are installed the svn clients they can copy the code from the repository to their local systems, code changes can be modified in the local copy, and once the changes are done, again they save their code to the repository. so that multiple users have synch to the repositories.
SVN is mostly used to keep the code base of a project that will be changed by many teams in sync.
SVN is used to maintain the codebase in most Java open-source projects.
What is SVN stand for?
SVN is a stand for Subversion developed by Apache Foundation with an Opensource version
Is SVN a version control system?
SVN is a Centralized distributed version control system with an apache open-source license. It is used to track and maintain a history of versions of a code base for applications.
what is Checkout in SVN?:-
Checkout is CVS jargon used to create a local copy of the codebase from the repository. This can be done either from the SVN GUI clients(Tortoise SVN) or command-based clients.
svn co command is used to checkout the repository in SVN
svn co <svnrepo>
what is the commit in SVN?
commit is CVS jargon used to save the local copy of the codebase to the repository code base, so that code in the local and repository is synch always.
svn command used to commit changes to the repository.
svn commit -F "Commit changes" files or folder
What is Merge in SVN? **
Team A started work on code that is checkout from the repository for the one project. Team b checks out the code from the repository after Team A checkouts.
Team A finishes their work for the local copy and commits their local changes to Repository.
But team b has their 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 the local copy to the repository.
while the 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 mergers in SVN.
- Automatic Merge:- Automatic means svn resolve the conflicts automatically. No changes are required from the developer
- Manual Merge:- SVN provides the merge manager, in that we can compare the files that have conflicts and merge as per the codebase.
We need to do this carefully as there is missing code if we have not done it correctly
Advantages or benefits of Subversion
SVN is a lightweight tool. Easy to learn and set up as well as for administration.
Full revision history of all the that are modified/added/deleted/Rename
Easily integrated with other build tools to achieve Continuous Integration testing.
Maintaining the different versions of the codebase in the repository by simple commands.
What is the difference between SVN and TortoiseSVN?
SVN also called a subversion, is a version control system
TortoiseSVN is a Subversion client, It is GUI Based tool that supports the command line in Windows Operation System.
To work with SVN, You need to give terminal commands to do operations on the svn repository. It is very difficult to issue commands for file operations.
TortoiseSVN simplified the svn terminal commands visual operations.
This topic has been a very basic start to explore on the SVN tutorial Hopefully 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.